@common-origin/design-system 3.1.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.js +1050 -722
- package/dist/client.js.map +1 -1
- package/dist/components/atoms/Badge/Badge.d.mts +2 -2
- package/dist/components/atoms/Badge/Badge.d.ts +2 -2
- package/dist/components/atoms/Badge/Badge.mjs +15 -9
- package/dist/components/atoms/Box/Box.d.mts +3 -2
- package/dist/components/atoms/Box/Box.d.ts +3 -2
- package/dist/components/atoms/Button/Button.mjs +1 -1
- package/dist/components/atoms/Chip/shared/ChipBase.mjs +1 -1
- package/dist/components/atoms/Icon/Icon.d.mts +1 -1
- package/dist/components/atoms/Icon/Icon.d.ts +1 -1
- package/dist/components/atoms/Icon/Icon.mjs +35 -10
- package/dist/components/atoms/IconButton/IconButton.mjs +1 -1
- package/dist/components/atoms/ProgressBar/ProgressBar.d.mts +1 -1
- package/dist/components/atoms/ProgressBar/ProgressBar.d.ts +1 -1
- package/dist/components/atoms/Tag/Tag.d.mts +1 -1
- package/dist/components/atoms/Tag/Tag.d.ts +1 -1
- package/dist/components/atoms/Tooltip/Tooltip.d.mts +7 -1
- package/dist/components/atoms/Tooltip/Tooltip.d.ts +7 -1
- package/dist/components/atoms/Tooltip/Tooltip.mjs +18 -8
- package/dist/components/molecules/ActionSheet/ActionSheet.mjs +2 -2
- package/dist/components/molecules/Alert/Alert.mjs +1 -1
- package/dist/components/molecules/Checkbox/SelectableInputBase.mjs +1 -1
- package/dist/components/molecules/Dropdown/Dropdown.mjs +1 -1
- package/dist/components/molecules/List/ListItem.mjs +3 -3
- package/dist/components/molecules/Menu/Menu.d.mts +8 -1
- package/dist/components/molecules/Menu/Menu.d.ts +8 -1
- package/dist/components/molecules/Menu/Menu.mjs +12 -9
- package/dist/components/molecules/Modal/Modal.mjs +1 -1
- package/dist/components/molecules/NumberInput/NumberInput.mjs +2 -1
- package/dist/components/molecules/PasswordField/PasswordField.mjs +3 -2
- package/dist/components/molecules/SearchField/SearchField.mjs +3 -3
- package/dist/components/molecules/Sheet/Sheet.mjs +3 -3
- package/dist/components/molecules/SidebarNavItem/SidebarNavItem.d.mts +3 -2
- package/dist/components/molecules/SidebarNavItem/SidebarNavItem.d.ts +3 -2
- package/dist/components/molecules/SidebarNavItem/SidebarNavItem.mjs +128 -41
- package/dist/components/molecules/SidebarNavItem/sidebarNavMotion.d.mts +30 -0
- package/dist/components/molecules/SidebarNavItem/sidebarNavMotion.d.ts +30 -0
- package/dist/components/molecules/SidebarNavItem/sidebarNavMotion.mjs +69 -0
- package/dist/components/molecules/SidebarNavItem/sidebarNavMotion.mjs.map +1 -0
- package/dist/components/molecules/SidebarNavSection/SidebarNavSection.mjs +57 -43
- package/dist/components/molecules/TabBar/TabBar.mjs +3 -3
- package/dist/components/molecules/WorkspaceSwitcher/WorkspaceSwitcher.mjs +3 -1
- package/dist/components/organisms/SidebarNav/SidebarNav.mjs +173 -62
- package/dist/data.js +2680 -190
- package/dist/data.js.map +1 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/lib/statusShapes.mjs +1 -1
- package/dist/lib/statusShapes.mjs.map +1 -1
- package/dist/lib/styleUtils.d.mts +4 -0
- package/dist/lib/styleUtils.d.ts +4 -0
- package/dist/lib/styleUtils.mjs +5 -1
- package/dist/lib/styleUtils.mjs.map +1 -1
- package/dist/lib/tokenAliases.mjs +1 -0
- package/dist/lib/tokenAliases.mjs.map +1 -1
- package/dist/lib/useFloatingLayer.d.mts +8 -1
- package/dist/lib/useFloatingLayer.d.ts +8 -1
- package/dist/lib/useFloatingLayer.mjs +11 -2
- package/dist/lib/useFloatingLayer.mjs.map +1 -1
- package/dist/styles/iconSet.json.mjs +2442 -0
- package/dist/styles/iconSet.json.mjs.map +1 -0
- package/dist/styles/tokens.d.mts +93 -24
- package/dist/styles/tokens.d.ts +93 -24
- package/dist/styles/tokens.json +96 -59
- package/dist/styles/tokens.json.mjs +96 -59
- package/dist/styles/tokens.json.mjs.map +1 -1
- package/dist/tokens/index.js +96 -59
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/index.mjs +96 -59
- package/dist/tokens/index.mjs.map +1 -1
- package/dist/tokens/styles/tokens.d.mts +93 -24
- package/dist/tokens/styles/tokens.d.ts +93 -24
- package/dist/tokens.css +1105 -74
- package/dist/types/iconSet.d.mts +6 -0
- package/dist/types/iconSet.d.ts +6 -0
- package/dist/types/iconSet.mjs +12 -0
- package/dist/types/iconSet.mjs.map +1 -0
- package/dist/types/icons.d.mts +58 -6
- package/dist/types/icons.d.ts +58 -6
- package/dist/types/icons.mjs +5 -0
- package/dist/types/icons.mjs.map +1 -1
- package/dist/types/index.d.mts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +7 -3
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sources":["../node_modules/tslib/tslib.es6.js","../src/lib/cssVariables.ts","../src/lib/cssTokens.ts","../src/components/atoms/Avatar/Avatar.tsx","../src/lib/styleUtils.ts","../src/components/atoms/Typography/Typography.tsx","../src/components/atoms/Badge/Badge.tsx","../src/lib/tokenAliases.ts","../src/components/atoms/Box/Box.tsx","../src/components/atoms/Icon/Icon.tsx","../src/components/atoms/Button/Button.tsx","../src/components/atoms/CategoryLabel/CategoryLabel.tsx","../src/components/atoms/Chip/shared/utils.ts","../src/components/atoms/Chip/shared/ChipBase.tsx","../src/components/atoms/Chip/Chip.tsx","../src/components/atoms/Chip/InputChip.tsx","../src/components/atoms/Chip/FilterChip.tsx","../src/components/atoms/Chip/SuggestionChip.tsx","../src/components/atoms/Container/Container.tsx","../src/components/atoms/Picture/Picture.tsx","../src/components/atoms/DateFormatter/DateFormatter.tsx","../src/components/atoms/IconButton/IconButton.tsx","../src/components/atoms/MoneyDisplay/MoneyDisplay.tsx","../src/components/atoms/ProgressBar/ProgressBar.tsx","../src/components/atoms/Divider/Divider.tsx","../src/components/atoms/Stack/Stack.tsx","../src/lib/statusShapes.ts","../src/components/atoms/StatusLabel/StatusShape.tsx","../src/components/atoms/StatusLabel/StatusLabelBase.tsx","../src/components/atoms/StatusLabel/StatusLabel.tsx","../src/components/atoms/Tag/Tag.tsx","../src/lib/usePresence.ts","../src/lib/floatingPosition.ts","../src/lib/useFloatingLayer.ts","../src/lib/keyboardFocus.ts","../src/components/atoms/Tooltip/Tooltip.tsx","../src/components/atoms/AILabel/AILabel.tsx","../src/components/molecules/AccountCard/AccountCard.tsx","../src/components/molecules/List/ListContext.ts","../src/components/molecules/List/ListItem.tsx","../src/components/molecules/ActionSheet/ActionSheet.tsx","../src/components/molecules/AgentInput/agentInputSpeech.ts","../src/components/molecules/AgentInput/agentInputStateMachine.ts","../src/components/molecules/AgentInput/AgentInput.tsx","../src/components/molecules/Alert/Alert.tsx","../src/components/molecules/InlineAlert/InlineAlert.tsx","../src/components/molecules/Breadcrumbs/Breadcrumbs.tsx","../src/components/molecules/CardSmall/CardSmall.tsx","../src/components/molecules/CardLarge/CardLarge.tsx","../src/components/molecules/Checkbox/SelectableInputBase.tsx","../src/components/molecules/Checkbox/Checkbox.tsx","../src/components/molecules/ChipGroup/ChipGroup.tsx","../src/components/molecules/CodeBlock/CodeBlock.tsx","../src/components/molecules/DateGroup/DateGroup.tsx","../src/components/molecules/EmptyState/EmptyState.tsx","../src/components/molecules/FeatureBlock/FeatureBlock.tsx","../src/components/molecules/Dropdown/Dropdown.tsx","../src/components/molecules/List/List.tsx","../src/components/molecules/Menu/Menu.tsx","../src/components/molecules/SidebarNavItem/SidebarNavContext.ts","../src/components/molecules/SidebarNavItem/SidebarNavItem.tsx","../src/components/molecules/SidebarNavSection/SidebarNavSection.tsx","../src/components/molecules/Modal/Modal.tsx","../src/components/molecules/TextField/InputBase.tsx","../src/components/molecules/NumberInput/NumberInput.tsx","../src/components/molecules/PasswordField/PasswordField.tsx","../src/components/molecules/SearchField/SearchField.tsx","../src/components/molecules/Sheet/Sheet.tsx","../src/components/molecules/Slider/Slider.tsx","../src/components/molecules/TabBar/TabBar.tsx","../src/components/molecules/TextField/TextField.tsx","../src/components/molecules/TransactionListItem/TransactionListItem.tsx","../src/components/molecules/WorkspaceSwitcher/WorkspaceSwitcher.tsx","../src/components/organisms/SidebarNav/SidebarNav.tsx","../src/components/layout/GridSystem/GridSystem.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","// Components read tokens as CSS variables, with the resolved value as the fallback (decision 0041).\n// A product that loads tokens.css can change a token for a region (a density or motion mode, a\n// theme); one that doesn't renders exactly the resolved values.\n\n/**\n * The CSS variable tokens.css declares for a token path: Style Dictionary's `name/kebab` with the\n * `co` prefix. `semantic.color.text.default` is `--co-semantic-color-text-default`, and\n * `semantic.border.focusOffset` is `--co-semantic-border-focus-offset`.\n */\nexport function cssVariableName(path: string[]): string {\n return `--${['co', ...path]\n .join('-')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .toLowerCase()}`\n}\n\n/** Breakpoints stay values: a CSS variable can't be used in a media query */\nconst keepsValue = (path: string[]) => path[1] === 'breakpoint'\n\ntype Tree = { [key: string]: string | Tree }\n\n/**\n * A copy of a token tree with the same shape, where every value reads its CSS variable and falls\n * back to the resolved value: `var(--co-semantic-color-text-default, #212529)`.\n */\nexport function withCssVariables<T extends Tree>(tree: T, path: string[] = []): T {\n return Object.fromEntries(\n Object.entries(tree).map(([key, value]) => {\n const at = [...path, key]\n if (typeof value !== 'string') return [key, withCssVariables(value, at)]\n return [key, keepsValue(at) ? value : `var(${cssVariableName(at)}, ${value})`]\n })\n ) as T\n}\n","import tokensJson from '../styles/tokens.json'\nimport type { Tokens } from '../styles/tokens'\nimport { withCssVariables } from './cssVariables'\n\n/**\n * The tokens as components read them (decision 0041): the same shape and type as `tokens.json`,\n * with every value a CSS variable that falls back to the resolved value, so a region can change a\n * token through tokens.css. Breakpoints stay values.\n *\n * Use the resolved values from `tokens.json` instead where a value is read as data rather than\n * CSS, such as a duration parsed for a timer.\n *\n * Jest maps this module to `tokens.json` (jest.config.js), so unit tests assert resolved values;\n * the browser specs check the variables.\n */\nconst tokens: Tokens = withCssVariables(tokensJson as Tokens)\n\nexport default tokens\n","import React, { useState } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\n// Destructure tokens\nconst { semantic } = tokens\nconst { initials } = tokens.component.avatar\nconst { color, size } = semantic\nconst { radius } = semantic\n\nexport interface AvatarProps {\n name: string\n picture?: string\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n 'data-testid'?: string\n}\n\ninterface StyledAvatarProps {\n $size: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n}\n\nconst AvatarContainer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledAvatarProps>`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${({ $size }) => size.avatar[$size]};\n height: ${({ $size }) => size.avatar[$size]};\n border-radius: ${radius.full};\n background-color: ${color.fill.muted};\n overflow: hidden;\n flex-shrink: 0;\n`\n\nconst AvatarImage = styled.img.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledAvatarProps>`\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: ${radius.full};\n /* Remove the img role since the container already has role=\"img\" */\n`\n\nconst AvatarInitials = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledAvatarProps>`\n font-family: ${initials.fontFamily};\n font-weight: ${initials.fontWeight};\n font-size: ${({ $size }) => initials.fontSize[$size]};\n color: ${color.text.default};\n line-height: ${initials.lineHeight};\n text-transform: uppercase;\n user-select: none;\n`\n\n// Helper function to get initials from name\nconst getInitials = (name: string): string => {\n return name\n .split(' ')\n .map(word => word.charAt(0))\n .join('')\n .slice(0, 2)\n .toUpperCase()\n}\n\nexport const Avatar: React.FC<AvatarProps> = ({ \n name, \n picture, \n size = 'md',\n 'data-testid': dataTestId,\n ...props \n}) => {\n // Remove styled-only props from the rest\n const { $size, ...htmlProps } = props as Record<string, any>\n const [imageError, setImageError] = useState(false)\n const [imageLoaded, setImageLoaded] = useState(false)\n\n const handleImageError = () => {\n setImageError(true)\n }\n\n const handleImageLoad = () => {\n setImageLoaded(true)\n }\n\n const showImage = picture && !imageError\n const initials = getInitials(name)\n\n return (\n <AvatarContainer \n $size={size}\n data-testid={dataTestId}\n data-size={size}\n role=\"img\"\n aria-label={`Avatar for ${name}`}\n {...htmlProps}\n >\n {showImage ? (\n <AvatarImage\n $size={size}\n src={picture}\n alt={`Avatar of ${name}`}\n onError={handleImageError}\n onLoad={handleImageLoad}\n data-state={imageLoaded ? 'loaded' : 'loading'}\n />\n ) : (\n <AvatarInitials \n $size={size}\n data-initials={initials}\n aria-hidden=\"true\"\n >\n {initials}\n </AvatarInitials>\n )}\n </AvatarContainer>\n )\n}","import { css, keyframes } from 'styled-components'\nimport tokens from './cssTokens'\n\n// Breakpoints from the semantic tokens (decision 0014)\nexport const breakpoints = {\n xs: tokens.semantic.breakpoint.xs,\n sm: tokens.semantic.breakpoint.sm,\n md: tokens.semantic.breakpoint.md,\n lg: tokens.semantic.breakpoint.lg,\n xl: tokens.semantic.breakpoint.xl,\n '2xl': tokens.semantic.breakpoint['2xl'],\n}\n\n// Media query helpers\nexport const media = {\n xs: `@media (min-width: ${breakpoints.xs})`,\n sm: `@media (min-width: ${breakpoints.sm})`,\n md: `@media (min-width: ${breakpoints.md})`,\n lg: `@media (min-width: ${breakpoints.lg})`,\n xl: `@media (min-width: ${breakpoints.xl})`,\n '2xl': `@media (min-width: ${breakpoints['2xl']})`,\n}\n\n// Windows Contrast Themes and other forced-colours modes (decision 0038). The browser swaps in\n// the user's system colours, drops background colours and box-shadows, and keeps borders and\n// outlines. Inside this query, give a control that shows its edge with a fill alone a border,\n// and draw selected and checked states with system colours: ButtonText for control edges,\n// Highlight and HighlightText for selected and checked, GrayText for disabled, CanvasText for\n// content. Use forced-color-adjust: none only on a fill that carries state.\nexport const forcedColors = '@media (forced-colors: active)'\n\n/** A control's edge in forced colours, for a control that shows its edge with a fill alone. The\n * border follows the text colour the browser picks: ButtonText, LinkText, or GrayText when disabled. */\nexport const forcedColorsEdge = `${forcedColors} {\n border: ${tokens.semantic.border.width.thin} solid currentColor;\n}`\n\n// Wrap fallbacks for people who ask for less motion (decision 0005): movement becomes\n// an instant change or a simple fade. Colour and opacity transitions need no fallback.\nexport const reducedMotion = '@media (prefers-reduced-motion: reduce)'\n\n// No `from` keyframe: the fade starts from the element's current opacity, including a\n// still-running entrance, so closing mid-entrance doesn't jump back to fully visible.\nconst fadeOut = keyframes`\n to { opacity: 0; }\n`\n\n// Exit for overlays that unmount (use with usePresence). Append `exitAnimation` to each of\n// the element's `animation` declarations while it exits: the entrance stays in the list,\n// so it isn't restarted, and the fade runs on top of it. A fade is already the\n// reduced-motion form, so it needs no fallback of its own. While it fades, the backdrop\n// still catches clicks (so they can't reach the page behind it) and the panel is inert.\n// Exits accelerate: things leaving speed up as they go (decision 0037).\nexport const exitAnimation = css`, ${fadeOut} ${tokens.semantic.motion.duration.fast} ${tokens.semantic.motion.easing.accelerate} forwards`\n\n// Content for screen readers only. The 1px size and -1px margin are part of the standard\n// visually-hidden technique, not design values, so they aren't tokens.\nexport const visuallyHidden = css`\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n`\n\n// One interaction pattern for rows and items: list items, menu and listbox options, sidebars\n// (decision 0030). Unselected rows follow the naked Button's ladder; selected rows follow the\n// light-blue selected ladder, with the text darkening with its fill (decision 0016). Unselected\n// rows leave their text colour to the component, so a destructive row can stay red.\nconst { fill: rowFill, text: rowText } = tokens.semantic.color\n\nexport interface RowState {\n background: string\n text?: string\n}\n\nexport const rowStates: Record<'unselected' | 'selected', Record<'rest' | 'hover' | 'pressed', RowState>> = {\n unselected: {\n rest: { background: 'transparent' },\n hover: { background: rowFill.muted },\n pressed: { background: rowFill.default },\n },\n selected: {\n rest: { background: rowFill['accent-muted'], text: rowText.accent },\n hover: { background: rowFill['accent-muted-hover'], text: rowText.accent },\n pressed: { background: rowFill['accent-muted-pressed'], text: rowText.accent },\n },\n}\n\nconst rowDeclarations = ({ background, text }: RowState, textSelector?: string) => {\n if (!text) return `background-color: ${background};`\n return textSelector\n ? `background-color: ${background};\\n ${textSelector} { color: ${text}; }`\n : `background-color: ${background};\\n color: ${text};`\n}\n\n/**\n * The background (and, when selected, text) of an interactive row in every state.\n * - `focused`: keyboard focus that isn't DOM focus, such as a listbox option under\n * aria-activedescendant. It shows the hover state.\n * - `disabled`: shows the resting state, with no hover or press.\n * - `textSelector`: a descendant to colour when the row's text isn't the row itself, for example\n * text set by Typography. Pass it without `&`.\n */\nexport const interactiveRow = ({\n selected = false,\n focused = false,\n disabled = false,\n textSelector,\n}: {\n selected?: boolean\n focused?: boolean\n disabled?: boolean\n textSelector?: string\n} = {}) => {\n const states = selected ? rowStates.selected : rowStates.unselected\n if (disabled) return `${rowDeclarations(states.rest, textSelector)}\\n${rowForcedColors({ selected, focused, disabled, textSelector })}`\n return `\n ${rowDeclarations(focused ? states.hover : states.rest, textSelector)}\n\n &:hover {\n ${rowDeclarations(states.hover, textSelector)}\n }\n\n &:active {\n ${rowDeclarations(states.pressed, textSelector)}\n }\n\n ${rowForcedColors({ selected, focused, disabled, textSelector })}\n`\n}\n\n// Rows in forced colours (decision 0038): fills are dropped, so a selected row takes the system\n// selection colours, and a hovered or keyboard-active row is outlined in Highlight.\nconst rowForcedColors = ({\n selected,\n focused,\n disabled,\n textSelector,\n}: {\n selected: boolean\n focused: boolean\n disabled: boolean\n textSelector?: string\n}) => {\n const text = (color: string) => (textSelector ? `color: ${color};\\n ${textSelector} { color: ${color}; }` : `color: ${color};`)\n const hover = `outline: ${tokens.semantic.border.width.thin} solid Highlight;\\n outline-offset: calc(-1 * ${tokens.semantic.border.width.thin});`\n // A row that doesn't respond (disabled, or not interactive at all) keeps its selection but has\n // no hover outline. Disabled text is the component's to colour: callers also pass this for\n // static rows, which must stay CanvasText.\n // A selected row keeps forced-color-adjust: auto: the browser keeps system colours an author\n // sets, so the row stays Highlight with HighlightText. Its descendants' own colours would be\n // forced to CanvasText, so they inherit HighlightText, and anything drawn with a fill inside\n // (a chip or tag as the row's badge) drops it and keeps its edge. The doubled class outranks\n // the descendants' own rules.\n return `${forcedColors} {\n ${selected ? `background-color: Highlight;\\n ${text('HighlightText')}\\n && * {\\n color: inherit;\\n background-color: transparent;\\n }` : ''}\n ${!disabled && focused ? hover : ''}\n ${disabled ? '' : `&:hover {\\n ${hover}\\n }`}\n }`\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic: { typography, color, letterSpacing } } = tokens\n\nexport type TypographyVariant = \n | 'display' \n | 'h1' \n | 'h2' \n | 'h3' \n | 'h4' \n | 'h5' \n | 'h6' \n | 'subtitle' \n | 'body' \n | 'small' \n | 'overline' \n | 'caption' \n | 'button1' \n | 'button2' \n | 'button3' \n | 'label'\n\nexport type TypographyColor = \"default\" | \"emphasis\" | \"subdued\" | \"inverse\" | \"disabled\" | \"interactive\" | \"error\" | \"success\" | \"warning\"\n\nexport interface TypographyProps {\n /** Typography variant defining the semantic meaning and style */\n variant?: TypographyVariant\n /** Color variant for the text */\n color?: TypographyColor\n /** Content to render */\n children: React.ReactNode\n /** HTML element to render as (overrides default semantic element) */\n as?: React.ElementType\n /** Data test id for testing */\n 'data-testid'?: string\n}\n\ninterface StyledTypographyProps {\n $variant: TypographyVariant\n $color: TypographyColor\n}\n\nconst getTypographyStyles = (variant: TypographyVariant) => {\n const styles = {\n display: `font: ${typography.display}; letter-spacing: ${letterSpacing.tighter};`,\n h1: `font: ${typography.h1}; letter-spacing: ${letterSpacing.tighter};`,\n h2: `font: ${typography.h2}; letter-spacing: ${letterSpacing.tight};`,\n h3: `font: ${typography.h3}; letter-spacing: ${letterSpacing.tight};`,\n h4: `font: ${typography.h4}; letter-spacing: ${letterSpacing.tight};`,\n h5: `font: ${typography.h5}; letter-spacing: ${letterSpacing.normal};`,\n h6: `font: ${typography.h6}; letter-spacing: ${letterSpacing.normal};`,\n subtitle: `font: ${typography.subtitle};`,\n body: `font: ${typography.body};`,\n small: `font: ${typography.small};`,\n overline: `font: ${typography.overline};`,\n caption: `font: ${typography.caption}; text-transform: uppercase;`,\n button1: `font: ${tokens.component.button.sizes.large.font};`,\n button2: `font: ${tokens.component.button.sizes.medium.font};`,\n button3: `font: ${tokens.component.button.sizes.small.font}; font-weight: ${tokens.component.button.sizes.small.fontWeight};`,\n label: `font: ${typography.label};`,\n }\n \n return styles[variant] || styles.body\n}\n\nconst getTextColor = (colorVariant: TypographyColor) => {\n const colorMap = {\n default: color.text.default,\n emphasis: color.text.default,\n subdued: color.text.muted,\n inverse: color.text.inverse,\n disabled: color.text.disabled,\n interactive: color.text.accent,\n error: color.text.danger,\n success: color.text.success,\n warning: color.text.warning,\n }\n \n return colorMap[colorVariant] || colorMap.default\n}\n\nconst getDefaultElement = (variant: TypographyVariant): React.ElementType => {\n const elementMap: Record<TypographyVariant, React.ElementType> = {\n display: 'h1',\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle: 'p',\n body: 'p',\n small: 'span',\n overline: 'span',\n caption: 'span',\n button1: 'span',\n button2: 'span',\n button3: 'span',\n label: 'span',\n }\n \n return elementMap[variant] || 'span'\n}\n\nconst StyledTypography = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledTypographyProps>`\n ${({ $variant }) => getTypographyStyles($variant)}\n color: ${({ $color }) => getTextColor($color)};\n margin: 0;\n`\n\n/**\n * Typography is an atomic component for rendering text with semantic meaning and consistent styling.\n * \n * Features:\n * - Semantic variants (h1-h6, body, subtitle, etc.)\n * - Color variants for different contexts\n * - Automatic semantic HTML element selection\n * - Manual element override support\n * - Direct semantic token usage (no component tokens needed)\n * - Full accessibility support\n * \n * @example\n * ```tsx\n * <Typography variant=\"h1\">Main Heading</Typography>\n * <Typography variant=\"body\" color=\"subdued\">Body text</Typography>\n * <Typography variant=\"caption\" as=\"figcaption\">Image caption</Typography>\n * ```\n */\nexport const Typography: React.FC<TypographyProps> = ({ \n variant = 'body', \n children, \n color = 'default',\n as,\n 'data-testid': dataTestId\n}) => {\n // $variant and $color are only used for styled-components prop filtering\n const defaultElement = getDefaultElement(variant)\n const elementType = as || defaultElement\n\n return (\n <StyledTypography \n as={elementType}\n $variant={variant}\n $color={color}\n data-testid={dataTestId}\n >\n {children}\n </StyledTypography>\n )\n}\n","import React from 'react'\nimport styled, { keyframes } from 'styled-components'\nimport { forcedColors, reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\nimport tokens from '@/lib/cssTokens'\nimport { Typography } from '../Typography'\n\nconst { semantic } = tokens\nconst { color } = semantic\nconst { radius } = semantic\nconst { dot, count, ring } = tokens.component.badge\n\n/**\n * Badge variants: `default`, the near-black count, and `accent`, the blue highlight (decision 0045).\n */\nexport type BadgeVariant = 'default' | 'accent'\n\nexport interface BadgeProps {\n /** Content to wrap with the badge */\n children: React.ReactNode\n /** Number to display in the badge. If 0, badge is hidden */\n count?: number\n /** Maximum number to display before showing \"99+\" */\n max?: number\n /**\n * Visual variant of the badge. A badge means new or unread items (decision 0045): `accent` is\n * the blue highlight, and `default` the near-black count. A badge's colour alone can't carry a\n * status, so a count of items with a status uses the status pattern instead (\"3 failed\" with\n * StatusLabel).\n * @default 'default'\n */\n variant?: BadgeVariant\n /** Show only a dot indicator instead of count */\n dot?: boolean\n /** Screen reader label for the badge */\n 'aria-label'?: string\n /** Additional CSS class */\n className?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\nconst scaleIn = keyframes`\n from {\n transform: scale(0.8);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n`\n\nconst BadgeWrapper = styled.span`\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n flex-shrink: 0;\n`\n\nconst BadgeIndicator = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $variant: string; $isDot: boolean; $isVisible: boolean }>`\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n display: ${props => props.$isVisible ? 'flex' : 'none'};\n align-items: center;\n justify-content: center;\n min-width: ${props => props.$isDot ? dot.size : count.minWidth};\n height: ${props => props.$isDot ? dot.size : count.height};\n padding: ${props => props.$isDot ? '0' : `0 ${semantic.space.inset.xs}`};\n border-radius: ${radius.full};\n line-height: ${count.lineHeight};\n white-space: nowrap;\n box-shadow: 0 0 0 ${ring.width} ${semantic.surface.base};\n animation: ${scaleIn} ${semantic.motion.duration.moderate} ${semantic.motion.easing.decelerate};\n\n ${reducedMotion} {\n animation: none;\n }\n\n /* Forced colours drop fills (decision 0038): a dot is only a fill, so it keeps one in the\n text colour; a count gets an edge around its number */\n ${props => props.$isDot\n ? `${forcedColors} { forced-color-adjust: none; background-color: CanvasText; }`\n : `${forcedColors} { border: ${semantic.border.width.thin} solid currentColor; }`}\n \n ${props => {\n switch (props.$variant) {\n case 'accent':\n return `\n background-color: ${color.fill.accent};\n color: ${color.text.inverse};\n `\n default:\n return `\n background-color: ${color.fill.emphasis};\n color: ${color.text.inverse};\n `\n }\n }}\n`\n\nconst ScreenReaderOnly = styled.span`\n ${visuallyHidden}\n`\n\nexport const Badge: React.FC<BadgeProps> = ({\n children,\n count = 0,\n max = 99,\n variant = 'default',\n dot = false,\n 'aria-label': ariaLabel,\n className,\n 'data-testid': dataTestId\n}) => {\n const isVisible = dot || count > 0\n const displayCount = count > max ? `${max}+` : count.toString()\n \n // Generate default aria-label if not provided\n const defaultAriaLabel = dot \n ? 'New notification indicator'\n : count === 1 \n ? '1 notification' \n : `${count} notifications`\n \n const label = ariaLabel || defaultAriaLabel\n\n return (\n <BadgeWrapper className={className} data-testid={dataTestId}>\n {children}\n <BadgeIndicator\n $variant={variant}\n $isDot={dot}\n $isVisible={isVisible}\n role=\"status\"\n aria-live=\"polite\"\n >\n {!dot && (\n <Typography variant=\"caption\" color=\"inverse\">\n {displayCount}\n </Typography>\n )}\n <ScreenReaderOnly>{label}</ScreenReaderOnly>\n </BadgeIndicator>\n </BadgeWrapper>\n )\n}\n","import tokens from './cssTokens'\nimport type { Tokens } from '../types/tokens'\n\n// Box's spacing and radius props keep their own names, which 3.0 decoupled from the removed\n// spacing.layout and border.radius tokens (P7, #99), and read the semantic grammar's tokens\n// (decision 0031). Each map covers every key the prop type allows, so TypeScript fails here if a\n// key is added without a mapping.\nconst { semantic } = tokens\nconst { color, space, radius, surface } = semantic\n\ntype Semantic = Tokens['semantic']\n\n/** Box's spacing values (`p`, `m`, `gap`…), each a `space` step, plus `auto`. */\nexport type BoxSpace =\n | 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | '8xl' | '9xl' | '10xl' | '11xl'\n | 'auto'\n\n/** Box's spacing props: each name maps to the space step that replaced its spacing.layout token. */\nexport const spaceByLayoutKey: Record<BoxSpace, string> = {\n none: space[0],\n xs: space[100],\n sm: space[200],\n md: space[300],\n lg: space[400],\n xl: space[500],\n '2xl': space[600],\n '3xl': space[700],\n '4xl': space[800],\n '5xl': space[900],\n '6xl': space[1000],\n '7xl': space[1200],\n '8xl': space[1400],\n '9xl': space[1600],\n '10xl': space[2000],\n '11xl': space[2400],\n // A keyword, not a step (0031)\n auto: semantic.spacing.layout.auto,\n}\n\n/** Box's `borderRadius` values: the `radius` steps, with `circle` for `full`. */\nexport type BoxRadius = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'circle'\n\n/** Box's `borderRadius` prop, read from `radius`. */\nexport const radiusByKey: Record<BoxRadius, string> = {\n none: radius.none,\n xs: radius.xs,\n sm: radius.sm,\n md: radius.md,\n lg: radius.lg,\n xl: radius.xl,\n '2xl': radius['2xl'],\n '3xl': radius['3xl'],\n circle: radius.full,\n}\n\n/**\n * Box's `bg` values in the semantic grammar (decision 0031, #304): the token's path below\n * `semantic`, such as `surface.raised` or `color.fill.muted`.\n */\nexport type BackgroundPath =\n | `surface.${keyof Semantic['surface']}`\n | `color.fill.${keyof Semantic['color']['fill']}`\n\n/** Box's `bg` prop: the grammar's token paths, read from the token at that path. */\nexport const backgroundByPath: Record<BackgroundPath, string> = {\n 'surface.base': surface.base,\n 'surface.raised': surface.raised,\n 'surface.scrim': surface.scrim,\n 'color.fill.emphasis': color.fill.emphasis,\n 'color.fill.muted': color.fill.muted,\n 'color.fill.inverse': color.fill.inverse,\n 'color.fill.accent': color.fill.accent,\n 'color.fill.accent-hover': color.fill['accent-hover'],\n 'color.fill.accent-pressed': color.fill['accent-pressed'],\n 'color.fill.accent-muted': color.fill['accent-muted'],\n 'color.fill.accent-muted-hover': color.fill['accent-muted-hover'],\n 'color.fill.accent-muted-pressed': color.fill['accent-muted-pressed'],\n 'color.fill.danger': color.fill.danger,\n 'color.fill.danger-hover': color.fill['danger-hover'],\n 'color.fill.danger-pressed': color.fill['danger-pressed'],\n 'color.fill.danger-muted': color.fill['danger-muted'],\n 'color.fill.success': color.fill.success,\n 'color.fill.success-muted': color.fill['success-muted'],\n 'color.fill.warning': color.fill.warning,\n 'color.fill.warning-muted': color.fill['warning-muted'],\n 'color.fill.serious': color.fill.serious,\n 'color.fill.serious-muted': color.fill['serious-muted'],\n 'color.fill.ai-muted': color.fill['ai-muted'],\n 'color.fill.disabled': color.fill.disabled,\n 'color.fill.default': color.fill.default,\n 'color.fill.default-hover': color.fill['default-hover'],\n 'color.fill.default-pressed': color.fill['default-pressed'],\n 'color.fill.none': color.fill.none,\n 'color.fill.none-hover': color.fill['none-hover'],\n 'color.fill.none-pressed': color.fill['none-pressed'],\n 'color.fill.inverse-none-hover': color.fill['inverse-none-hover'],\n}\n\n/** Box's `color` prop: the text colours. */\nexport const textColorByKey: Record<keyof Semantic['color']['text'], string> = color.text\n\n/** Box's border props: the border colours. */\nexport const borderColorByKey: Record<keyof Semantic['color']['border'], string> = color.border\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\nimport type { Tokens } from '../../../types/tokens'\nimport { backgroundByPath, borderColorByKey, radiusByKey, spaceByLayoutKey, textColorByKey } from '../../../lib/tokenAliases'\nimport type { BackgroundPath, BoxRadius, BoxSpace } from '../../../lib/tokenAliases'\n\nexport type { BoxRadius, BoxSpace }\nimport { reducedMotion } from '../../../lib/styleUtils'\n\n/**\n * Box's background: a semantic token's path below `semantic` (decision 0031), such as\n * `surface.base`, `surface.raised` or `color.fill.muted`. The old `semantic.color.background`\n * keys (`default`, `subtle`, `surface`…) were removed in 3.0 (#304).\n */\nexport type BoxBackground = BackgroundPath\n\n// Public props interface (without $ prefix, following atomic pattern)\nexport interface BoxProps {\n // Display\n display?: 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'none'\n \n // Flexbox\n flexDirection?: 'row' | 'column' | 'row-reverse' | 'column-reverse'\n justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'\n alignItems?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'\n flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse'\n gap?: BoxSpace\n \n // Spacing (using semantic layout tokens)\n m?: BoxSpace\n mt?: BoxSpace\n mr?: BoxSpace\n mb?: BoxSpace\n ml?: BoxSpace\n mx?: BoxSpace\n my?: BoxSpace\n p?: BoxSpace\n pt?: BoxSpace\n pr?: BoxSpace\n pb?: BoxSpace\n pl?: BoxSpace\n px?: BoxSpace\n py?: BoxSpace\n \n // Size\n width?: string\n height?: string\n maxWidth?: string\n maxHeight?: string\n minWidth?: string\n minHeight?: string\n \n // Position\n position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'\n top?: string\n right?: string\n bottom?: string\n left?: string\n \n // Borders\n borderRadius?: BoxRadius\n border?: keyof Tokens['semantic']['color']['border']\n borderTop?: keyof Tokens['semantic']['color']['border']\n borderRight?: keyof Tokens['semantic']['color']['border']\n borderBottom?: keyof Tokens['semantic']['color']['border']\n borderLeft?: keyof Tokens['semantic']['color']['border']\n \n // Background & Color\n /**\n * Background colour, as a semantic token path: `surface.base` (page), `surface.raised` (cards,\n * sheets), `surface.scrim`, or a `color.fill.*` fill such as `color.fill.muted`.\n */\n bg?: BoxBackground\n color?: keyof Tokens['semantic']['color']['text']\n \n // Elevation (shadow)\n shadow?: keyof Tokens['semantic']['elevation']\n \n // Cursor\n cursor?: 'auto' | 'default' | 'pointer' | 'wait' | 'text' | 'move' | 'help' | 'not-allowed'\n \n // Transition\n transition?: string\n \n // Hover states\n hoverShadow?: keyof Tokens['semantic']['elevation']\n hoverTransform?: string\n \n // Overflow\n overflow?: 'visible' | 'hidden' | 'scroll' | 'auto'\n overflowX?: 'visible' | 'hidden' | 'scroll' | 'auto'\n overflowY?: 'visible' | 'hidden' | 'scroll' | 'auto'\n \n // Polymorphic component support\n as?: React.ElementType\n \n // Standard props\n children?: React.ReactNode\n id?: string\n style?: React.CSSProperties\n onClick?: (event: React.MouseEvent) => void\n onKeyDown?: (event: React.KeyboardEvent) => void\n tabIndex?: number\n role?: string\n 'aria-label'?: string\n 'data-testid'?: string\n}\n\n// Internal styled props interface (with $ prefix)\ninterface StyledBoxProps {\n $display?: BoxProps['display']\n $flexDirection?: BoxProps['flexDirection']\n $justifyContent?: BoxProps['justifyContent']\n $alignItems?: BoxProps['alignItems']\n $flexWrap?: BoxProps['flexWrap']\n $gap?: BoxProps['gap']\n $m?: BoxProps['m']\n $mt?: BoxProps['mt']\n $mr?: BoxProps['mr']\n $mb?: BoxProps['mb']\n $ml?: BoxProps['ml']\n $mx?: BoxProps['mx']\n $my?: BoxProps['my']\n $p?: BoxProps['p']\n $pt?: BoxProps['pt']\n $pr?: BoxProps['pr']\n $pb?: BoxProps['pb']\n $pl?: BoxProps['pl']\n $px?: BoxProps['px']\n $py?: BoxProps['py']\n $width?: BoxProps['width']\n $height?: BoxProps['height']\n $maxWidth?: BoxProps['maxWidth']\n $maxHeight?: BoxProps['maxHeight']\n $minWidth?: BoxProps['minWidth']\n $minHeight?: BoxProps['minHeight']\n $position?: BoxProps['position']\n $top?: BoxProps['top']\n $right?: BoxProps['right']\n $bottom?: BoxProps['bottom']\n $left?: BoxProps['left']\n $borderRadius?: BoxProps['borderRadius']\n $border?: BoxProps['border']\n $borderTop?: BoxProps['borderTop']\n $borderRight?: BoxProps['borderRight']\n $borderBottom?: BoxProps['borderBottom']\n $borderLeft?: BoxProps['borderLeft']\n $bg?: BoxProps['bg']\n $color?: BoxProps['color']\n $shadow?: BoxProps['shadow']\n $cursor?: BoxProps['cursor']\n $transition?: BoxProps['transition']\n $hoverShadow?: BoxProps['hoverShadow']\n $hoverTransform?: BoxProps['hoverTransform']\n $overflow?: BoxProps['overflow']\n $overflowX?: BoxProps['overflowX']\n $overflowY?: BoxProps['overflowY']\n}\n\nconst StyledBox = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<StyledBoxProps>`\n ${props => props.$display && css`display: ${props.$display};`}\n \n // Flexbox\n ${props => props.$flexDirection && css`flex-direction: ${props.$flexDirection};`}\n ${props => props.$justifyContent && css`justify-content: ${props.$justifyContent};`}\n ${props => props.$alignItems && css`align-items: ${props.$alignItems};`}\n ${props => props.$flexWrap && css`flex-wrap: ${props.$flexWrap};`}\n ${props => props.$gap && css`gap: ${spaceByLayoutKey[props.$gap]};`}\n \n // Margin\n ${props => props.$m && css`margin: ${spaceByLayoutKey[props.$m]};`}\n ${props => props.$mt && css`margin-top: ${spaceByLayoutKey[props.$mt]};`}\n ${props => props.$mr && css`margin-right: ${spaceByLayoutKey[props.$mr]};`}\n ${props => props.$mb && css`margin-bottom: ${spaceByLayoutKey[props.$mb]};`}\n ${props => props.$ml && css`margin-left: ${spaceByLayoutKey[props.$ml]};`}\n ${props => props.$mx && css`\n margin-left: ${spaceByLayoutKey[props.$mx]};\n margin-right: ${spaceByLayoutKey[props.$mx]};\n `}\n ${props => props.$my && css`\n margin-top: ${spaceByLayoutKey[props.$my]};\n margin-bottom: ${spaceByLayoutKey[props.$my]};\n `}\n \n // Padding\n ${props => props.$p && css`padding: ${spaceByLayoutKey[props.$p]};`}\n ${props => props.$pt && css`padding-top: ${spaceByLayoutKey[props.$pt]};`}\n ${props => props.$pr && css`padding-right: ${spaceByLayoutKey[props.$pr]};`}\n ${props => props.$pb && css`padding-bottom: ${spaceByLayoutKey[props.$pb]};`}\n ${props => props.$pl && css`padding-left: ${spaceByLayoutKey[props.$pl]};`}\n ${props => props.$px && css`\n padding-left: ${spaceByLayoutKey[props.$px]};\n padding-right: ${spaceByLayoutKey[props.$px]};\n `}\n ${props => props.$py && css`\n padding-top: ${spaceByLayoutKey[props.$py]};\n padding-bottom: ${spaceByLayoutKey[props.$py]};\n `}\n \n // Size\n ${props => props.$width && css`width: ${props.$width};`}\n ${props => props.$height && css`height: ${props.$height};`}\n ${props => props.$maxWidth && css`max-width: ${props.$maxWidth};`}\n ${props => props.$maxHeight && css`max-height: ${props.$maxHeight};`}\n ${props => props.$minWidth && css`min-width: ${props.$minWidth};`}\n ${props => props.$minHeight && css`min-height: ${props.$minHeight};`}\n \n // Position\n ${props => props.$position && css`position: ${props.$position};`}\n ${props => props.$top && css`top: ${props.$top};`}\n ${props => props.$right && css`right: ${props.$right};`}\n ${props => props.$bottom && css`bottom: ${props.$bottom};`}\n ${props => props.$left && css`left: ${props.$left};`}\n \n // Borders\n ${props => props.$borderRadius && css`border-radius: ${radiusByKey[props.$borderRadius]};`}\n ${props => props.$border && borderColorByKey[props.$border] && css`border: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$border]};`}\n ${props => props.$borderTop && borderColorByKey[props.$borderTop] && css`border-top: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderTop]};`}\n ${props => props.$borderRight && borderColorByKey[props.$borderRight] && css`border-right: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderRight]};`}\n ${props => props.$borderBottom && borderColorByKey[props.$borderBottom] && css`border-bottom: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderBottom]};`}\n ${props => props.$borderLeft && borderColorByKey[props.$borderLeft] && css`border-left: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderLeft]};`}\n \n // Background & Color\n ${props => props.$bg && backgroundByPath[props.$bg] && css`background-color: ${backgroundByPath[props.$bg]};`}\n ${props => props.$color && textColorByKey[props.$color] && css`color: ${textColorByKey[props.$color]};`}\n \n // Elevation (shadow)\n ${props => props.$shadow && css`box-shadow: ${tokens.semantic.elevation[props.$shadow]};`}\n \n // Cursor\n ${props => props.$cursor && css`cursor: ${props.$cursor};`}\n \n // Transition\n ${props => props.$transition && css`transition: ${props.$transition};`}\n \n // Hover states\n ${props => (props.$hoverShadow || props.$hoverTransform) && css`\n &:hover {\n ${props.$hoverShadow && css`box-shadow: ${tokens.semantic.elevation[props.$hoverShadow]};`}\n ${props.$hoverTransform && css`transform: ${props.$hoverTransform};`}\n }\n \n /* Pressed settles back: the shadow drops to raised and any lift returns (issue 185). Pressing a\n control inside the card (an action button) presses that control, not the card. */\n &:active {\n transform: translateY(0);\n }\n\n ${props.$hoverShadow && css`\n &:active:not(:has(:is(button, a, [role=\"button\"]):active)) {\n box-shadow: ${tokens.semantic.elevation.raised};\n }\n `}\n \n &:focus-visible {\n outline: ${tokens.semantic.border.focus};\n outline-offset: ${tokens.semantic.border.focusOffset};\n }\n\n /* Reduced motion keeps the state change and drops the movement (decision 0015) */\n ${props.$hoverTransform && css`\n ${reducedMotion} {\n &:hover {\n transform: none;\n }\n }\n `}\n `}\n \n // Overflow\n ${props => props.$overflow && css`overflow: ${props.$overflow};`}\n ${props => props.$overflowX && css`overflow-x: ${props.$overflowX};`}\n ${props => props.$overflowY && css`overflow-y: ${props.$overflowY};`}\n`\n\n// Transform component that maps clean props to $-prefixed props for styled-components\nconst BoxTransform: React.FC<BoxProps> = (props) => {\n const {\n // Display\n display,\n \n // Flexbox\n flexDirection,\n justifyContent,\n alignItems,\n flexWrap,\n gap,\n \n // Spacing\n m,\n mt,\n mr,\n mb,\n ml,\n mx,\n my,\n p,\n pt,\n pr,\n pb,\n pl,\n px,\n py,\n \n // Size\n width,\n height,\n maxWidth,\n maxHeight,\n minWidth,\n minHeight,\n \n // Position\n position,\n top,\n right,\n bottom,\n left,\n \n // Borders\n borderRadius,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n \n // Background & Color\n bg,\n color,\n \n // Shadow\n shadow,\n \n // Cursor\n cursor,\n \n // Transition\n transition,\n \n // Hover states\n hoverShadow,\n hoverTransform,\n \n // Overflow\n overflow,\n overflowX,\n overflowY,\n \n // Standard props\n as,\n children,\n onClick,\n onKeyDown,\n tabIndex,\n role,\n 'aria-label': ariaLabel,\n 'data-testid': dataTestId,\n ...rest\n } = props\n\n return (\n <StyledBox\n as={as}\n data-testid={dataTestId}\n $display={display}\n $flexDirection={flexDirection}\n $justifyContent={justifyContent}\n $alignItems={alignItems}\n $flexWrap={flexWrap}\n $gap={gap}\n $m={m}\n $mt={mt}\n $mr={mr}\n $mb={mb}\n $ml={ml}\n $mx={mx}\n $my={my}\n $p={p}\n $pt={pt}\n $pr={pr}\n $pb={pb}\n $pl={pl}\n $px={px}\n $py={py}\n $width={width}\n $height={height}\n $maxWidth={maxWidth}\n $maxHeight={maxHeight}\n $minWidth={minWidth}\n $minHeight={minHeight}\n $position={position}\n $top={top}\n $right={right}\n $bottom={bottom}\n $left={left}\n $borderRadius={borderRadius}\n $border={border}\n $borderTop={borderTop}\n $borderRight={borderRight}\n $borderBottom={borderBottom}\n $borderLeft={borderLeft}\n $bg={bg}\n $color={color}\n $shadow={shadow}\n $cursor={cursor}\n $transition={transition}\n $hoverShadow={hoverShadow}\n $hoverTransform={hoverTransform}\n $overflow={overflow}\n $overflowX={overflowX}\n $overflowY={overflowY}\n onClick={onClick}\n onKeyDown={onKeyDown}\n tabIndex={tabIndex}\n role={role}\n aria-label={ariaLabel}\n {...rest}\n >\n {children}\n </StyledBox>\n )\n}\n\nexport const Box = BoxTransform\n","import React, { FC, ReactElement } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport iconsData from '@/styles/icons.json'\nimport { type IconName } from '../../../types/icons'\n\nexport type { IconName }\n\nexport interface IconProps {\n name: IconName\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'\n iconColor?: 'default' | 'emphasis' | 'subdued' | 'disabled' | 'inverse' | 'interactive' | 'error' | 'success' | 'warning' | 'inherit'\n /**\n * Makes the icon meaningful: it's announced as an image with this name. Without `aria-label`\n * or `title`, the icon is decorative and hidden from assistive technology (#85). Use a\n * human-readable name, never the internal icon name; `icons.json`'s `ariaLabelDefault` is a\n * starting point.\n */\n 'aria-label'?: string\n /**\n * Like `aria-label`, and also shown as a tooltip. `aria-label` wins if both are given.\n */\n title?: string\n 'data-testid'?: string\n}\n\ninterface StyledIconProps {\n $size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'\n $iconColor: 'default' | 'emphasis' | 'subdued' | 'disabled' | 'inverse' | 'interactive' | 'error' | 'success' | 'warning' | 'inherit'\n}\n\nconst IconStyled = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledIconProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${({ $size }) => tokens.semantic.size.icon[$size]};\n height: ${({ $size }) => tokens.semantic.size.icon[$size]};\n \n svg {\n width: 100%;\n height: 100%;\n display: block;\n }\n \n /* Use semantic icon colors */\n color: ${({ $iconColor }) => {\n switch ($iconColor) {\n case 'default':\n return tokens.semantic.color.icon.default\n case 'emphasis':\n return tokens.semantic.color.icon.default\n case 'subdued':\n return tokens.semantic.color.icon.muted\n case 'disabled':\n return tokens.semantic.color.icon.disabled\n case 'inverse':\n return tokens.semantic.color.icon.inverse\n case 'interactive':\n return tokens.semantic.color.icon.accent\n case 'error':\n return tokens.semantic.color.icon.danger\n case 'success':\n return tokens.semantic.color.icon.success\n case 'warning':\n return tokens.semantic.color.icon.warning\n case 'inherit':\n return 'currentColor'\n default:\n return tokens.semantic.color.icon.default\n }\n }};\n`\n\nexport const Icon: FC<IconProps> = ({\n name,\n size = 'lg',\n iconColor = 'default',\n 'aria-label': ariaLabel,\n title,\n 'data-testid': dataTestId\n}): ReactElement => {\n // Decorative unless it's given a name. A blank name is no name, so the icon stays hidden\n const label = ariaLabel?.trim() || title?.trim() || undefined\n\n // Get the icon data from the JSON file\n const iconData = iconsData[name]\n \n if (!iconData) {\n console.warn(`Icon \"${name}\" not found in icons.json`)\n return <IconStyled $size={size} $iconColor={iconColor} data-testid={dataTestId} />\n }\n \n return (\n <IconStyled $size={size} $iconColor={iconColor} data-testid={dataTestId}>\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...(label\n ? { role: 'img', 'aria-label': label }\n : { 'aria-hidden': true, focusable: false })}\n >\n {title?.trim() && <title>{title}</title>}\n <path d={iconData.path} />\n </svg>\n </IconStyled>\n )\n}\n\nexport default Icon","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { Icon, type IconName } from '../Icon'\nimport { forcedColorsEdge } from '../../../lib/styleUtils'\n\nconst { component: { button }, semantic } = tokens\n// Height comes from size.control as a minimum and the content is centred, so there is no\n// vertical padding (decision 0034). Horizontal padding comes from the semantic spacing scale:\n// no component spacing tokens (decision 0022)\nconst inset = semantic.space.inset\nconst control = semantic.size.control\n\n/**\n * Button variants. `accent` is the blue call to action one level above `primary`;\n * use at most one per view (decision 0016).\n */\nexport type ButtonVariant =\n | 'primary'\n | 'secondary'\n | 'naked'\n | 'accent'\n | 'danger'\n\n// Base props shared between button and link\nexport interface BaseButtonProps {\n /**\n * Visual style. `accent` is the blue call to action above `primary` (at most one per view).\n * @default 'primary'\n */\n variant?: ButtonVariant\n size?: 'small' | 'medium' | 'large'\n url?: string\n purpose?: 'button' | 'link'\n target?: string\n children: React.ReactNode\n iconName?: IconName\n id?: string\n 'data-testid'?: string\n /**\n * Custom link component (e.g., Next.js Link, React Router Link)\n * Receives href, children, and other props\n * @example linkComponent={NextLink} or linkComponent={ReactRouterLink}\n */\n linkComponent?: React.ComponentType<any>\n}\n\n// Button-specific props\nexport interface ButtonProps extends BaseButtonProps, Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof BaseButtonProps> {\n purpose?: 'button'\n}\n\n// Link-specific props\nexport interface LinkProps extends BaseButtonProps, Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof BaseButtonProps> {\n purpose: 'link'\n}\n\n// Union type for the component\ntype CustomButtonProps = ButtonProps | LinkProps\n\ninterface StyledButtonProps {\n $variant: ButtonVariant\n $size: 'small' | 'medium' | 'large'\n}\n\n// Base styles shared between button and link\nconst baseButtonStyles = `\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: ${tokens.semantic.space[100]};\n height: max-content;\n cursor: pointer;\n border: none;\n text-decoration: none;\n transition: ${semantic.motion.transition.feedback};\n white-space: nowrap;\n user-select: none;\n \n &:focus {\n outline: ${button.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n\n ${forcedColorsEdge}\n`\n\n// Dynamic variant styles using component tokens\nconst getVariantStyles = ({ $variant }: StyledButtonProps) => {\n const variantConfig = {\n primary: {\n bg: button.primary.backgroundColor,\n text: button.primary.textColor,\n hoverBg: button.hover.backgroundColor,\n activeBg: button.active.backgroundColor,\n disabledBg: button.disabled.backgroundColor,\n disabledText: button.disabled.textColor\n },\n secondary: {\n bg: button.variants.secondary.backgroundColor,\n text: button.variants.secondary.textColor,\n hoverBg: button.variants.secondary.hover.backgroundColor,\n activeBg: button.variants.secondary.active.backgroundColor,\n disabledBg: button.variants.secondary.disabled.backgroundColor,\n disabledText: button.variants.secondary.disabled.textColor\n },\n naked: {\n bg: button.variants.naked.backgroundColor,\n text: button.variants.naked.textColor,\n hoverBg: button.variants.naked.hover.backgroundColor,\n activeBg: button.variants.naked.active.backgroundColor,\n disabledBg: button.variants.naked.disabled.backgroundColor,\n disabledText: button.variants.naked.disabled.textColor\n },\n accent: {\n bg: button.variants.accent.backgroundColor,\n text: button.variants.accent.textColor,\n hoverBg: button.variants.accent.hover.backgroundColor,\n activeBg: button.variants.accent.active.backgroundColor,\n disabledBg: button.variants.accent.disabled.backgroundColor,\n disabledText: button.variants.accent.disabled.textColor\n },\n danger: {\n bg: button.variants.danger.backgroundColor,\n text: button.variants.danger.textColor,\n hoverBg: button.variants.danger.hover.backgroundColor,\n activeBg: button.variants.danger.active.backgroundColor,\n disabledBg: button.variants.danger.disabled.backgroundColor,\n disabledText: button.variants.danger.disabled.textColor\n }\n }\n \n // A removed variant (such as `emphasis`) passed from plain JavaScript renders as primary\n const config = variantConfig[$variant] ?? variantConfig.primary\n \n return `\n background-color: ${config.bg};\n color: ${config.text};\n \n &:hover:not(:disabled) {\n background-color: ${config.hoverBg};\n }\n\n &:active:not(:disabled) {\n background-color: ${config.activeBg};\n }\n\n &:disabled {\n background-color: ${config.disabledBg};\n color: ${config.disabledText};\n }\n `\n}\n\n// Dynamic size styles: font from component tokens, height from size.control (decision 0034)\nconst getSizeStyles = ({ $size }: StyledButtonProps) => {\n switch ($size) {\n case 'small':\n return `\n font: ${button.sizes.small.font};\n font-weight: ${button.sizes.small.fontWeight};\n min-height: ${control.sm};\n padding: 0 ${inset.md};\n `\n case 'medium':\n return `\n font: ${button.sizes.medium.font};\n min-height: ${control.md};\n padding: 0 ${inset.lg};\n `\n case 'large':\n default:\n return `\n font: ${button.sizes.large.font};\n min-height: ${control.lg};\n padding: 0 ${inset.lg};\n `\n }\n}\n\nconst StyledButton = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledButtonProps>`\n ${baseButtonStyles}\n border-radius: ${button.primary.borderRadius};\n \n ${getVariantStyles}\n ${getSizeStyles}\n`\n\nconst StyledLink = styled.a.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledButtonProps>`\n ${baseButtonStyles}\n border-radius: ${button.primary.borderRadius};\n \n ${getVariantStyles}\n ${getSizeStyles}\n`\n\n// Helper function to get icon size based on button size\nconst getIconSize = (buttonSize?: 'small' | 'medium' | 'large'): 'xs' | 'sm' | 'md' => {\n switch (buttonSize) {\n case 'small':\n return 'xs'\n case 'medium':\n return 'sm'\n case 'large':\n return 'md'\n default:\n return 'md'\n }\n}\n\n// Helper function to render button content with optional icon\nconst renderButtonContent = (children: React.ReactNode, iconName?: IconName, size?: 'small' | 'medium' | 'large') => {\n if (!iconName) return children\n \n const iconSize = getIconSize(size)\n \n return (\n <>\n <Icon name={iconName} size={iconSize} iconColor=\"inherit\" />\n {children}\n </>\n )\n}\n\nexport const Button: React.FC<CustomButtonProps> = ({ \n variant = \"primary\", \n size = \"large\", \n url, \n purpose = 'button', \n children, \n target,\n iconName,\n linkComponent: LinkComponent,\n 'data-testid': dataTestId,\n ...rest \n}) => {\n // For links with custom link component (e.g., Next.js Link, React Router Link)\n if (purpose === 'link' && url && LinkComponent) {\n // The link component renders the <a>, so anchor attributes (id, aria-*, rel, handlers) go to it\n const linkProps = rest as Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof BaseButtonProps>\n return (\n <LinkComponent {...linkProps} href={url} target={target}>\n <StyledLink \n as=\"span\"\n $variant={variant} \n $size={size} \n data-testid={dataTestId}\n >\n {renderButtonContent(children, iconName, size)}\n </StyledLink>\n </LinkComponent>\n )\n }\n \n // For standard links (external or without custom component)\n if (purpose === 'link' && url) {\n const linkProps = rest as Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof BaseButtonProps>\n return (\n <StyledLink \n {...linkProps}\n href={url} \n target={target} \n $variant={variant} \n $size={size}\n data-testid={dataTestId}\n >\n {renderButtonContent(children, iconName, size)}\n </StyledLink>\n )\n }\n \n // For button with URL (legacy support)\n if (purpose === 'button' && url) {\n const buttonProps = rest as Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof BaseButtonProps>\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n // Call any existing onClick handler first\n if (buttonProps.onClick) {\n buttonProps.onClick(e)\n }\n \n // Handle navigation\n if (url.startsWith('http') || target) {\n window.open(url, target || '_self')\n } else {\n window.location.href = url\n }\n }\n \n return (\n <StyledButton \n {...buttonProps}\n $variant={variant} \n $size={size}\n data-testid={dataTestId}\n onClick={handleClick}\n >\n {renderButtonContent(children, iconName, size)}\n </StyledButton>\n )\n }\n \n // Regular button\n const buttonProps = rest as Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof BaseButtonProps>\n return (\n <StyledButton \n $variant={variant} \n $size={size}\n data-testid={dataTestId}\n {...buttonProps}\n >\n {renderButtonContent(children, iconName, size)}\n </StyledButton>\n )\n}\n","import { ReactNode } from 'react'\nimport styled from 'styled-components'\nimport { Icon } from '../Icon/Icon'\nimport type { IconName } from '../../../types/icons'\nimport { visuallyHidden } from '../../../lib/styleUtils'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic } = tokens\nconst { color } = semantic\nconst { label } = tokens.component.badge\nconst { category } = color\nconst { radius } = semantic\nconst { space } = semantic\nconst { label: labelHeight } = semantic.size\n\n/**\n * The category colours: four display colours with no meaning, and grey for \"other\" (decision 0043).\n * They never mean status; for status use StatusLabel.\n */\nexport type CategoryDisplayColor = 'olive' | 'periwinkle' | 'rose' | 'magenta' | 'gray'\n\n/**\n * Category color options for CategoryLabel: the display colours (decision 0043). The old hue names\n * (blue, purple, pink, yellow, green, red, orange) were removed in 3.0.\n */\nexport type CategoryColor = CategoryDisplayColor\n\nconst displayColors: readonly CategoryDisplayColor[] = ['olive', 'periwinkle', 'rose', 'magenta', 'gray']\n\n/**\n * Visual variant options for CategoryLabel\n */\nexport type CategoryVariant = 'filled' | 'outlined' | 'minimal'\n\n/**\n * Size options for CategoryLabel: medium (24px) or large (32px), on the decision 0018 scale\n */\nexport type CategoryLabelSize = 'medium' | 'large'\n\n/**\n * Props for the CategoryLabel component\n */\nexport interface CategoryLabelProps {\n /**\n * The category text to display\n */\n children: ReactNode\n \n /**\n * Category colour: 'olive', 'periwinkle', 'rose', 'magenta' or 'gray' (decision 0043).\n * @default 'periwinkle'\n */\n color?: CategoryColor\n \n /**\n * Visual variant of the label\n * @default 'filled'\n */\n variant?: CategoryVariant\n \n /**\n * Size: medium (24px) or large (32px)\n * @default 'large'\n */\n size?: CategoryLabelSize\n \n /**\n * Optional icon name to display\n */\n icon?: IconName\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n \n /**\n * Accessible label, announced instead of the visible text (for example \"Category: Food & Dining\").\n * Rendered as visually hidden text, because a plain label has no role that can be named (#78).\n */\n 'aria-label'?: string\n}\n\n// Text on white or the -muted fill (outlined and minimal), at least 4.5:1 (#115)\nconst categoryText: Record<CategoryDisplayColor, string> = {\n olive: category['olive-text'],\n periwinkle: category['periwinkle-text'],\n rose: category['rose-text'],\n magenta: category['magenta-text'],\n gray: category['gray-text']\n}\n\ninterface StyledLabelProps {\n $color: CategoryDisplayColor\n $variant: CategoryVariant\n $size: CategoryLabelSize\n}\n\nconst StyledCategoryLabel = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledLabelProps>`\n box-sizing: border-box; /* the height includes padding and border, without relying on a global reset */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: ${radius.full};\n white-space: nowrap;\n user-select: none;\n border-style: solid;\n border-width: ${semantic.border.width.thin};\n \n /* Size styles */\n height: ${({ $size }) => labelHeight[$size]};\n padding: ${({ $size }) => $size === 'medium' \n ? `${space[100]} ${space[200]}` \n : `${space[200]} ${space[300]}`\n };\n font: ${({ $size }) => $size === 'medium' ? label.typography.small : label.typography.medium};\n /* After the font shorthand, which would otherwise reset it */\n font-weight: ${label.fontWeight};\n gap: ${space[100]};\n \n /* Variant + Color styles */\n background-color: ${({ $color, $variant }) => {\n if ($variant === 'filled') {\n return category[`${$color}-strong` as keyof typeof category]\n }\n if ($variant === 'outlined') {\n return 'transparent'\n }\n // minimal\n return category[`${$color}-muted` as keyof typeof category]\n }};\n \n /* Outlined and minimal text uses the AA text token, not the base colour (issue 115) */\n color: ${({ $color, $variant }) => {\n if ($variant === 'filled') {\n return color.text.inverse\n }\n return categoryText[$color]\n }};\n \n border-color: ${({ $color, $variant }) => {\n if ($variant === 'outlined') {\n return category[$color as keyof typeof category]\n }\n return 'transparent'\n }};\n`\n\n// The visible content, hidden from assistive technology when an aria-label replaces it.\n// display: contents keeps the root's flex layout and gap.\nconst VisibleContent = styled.span`\n display: contents;\n`\n\nconst HiddenLabel = styled.span`\n ${visuallyHidden}\n`\n\n/**\n * CategoryLabel colour-codes an item's category, such as a transaction's (decision 0018).\n *\n * A static, chip-like label with 4 display colours plus grey, 3 visual variants and an optional\n * icon. Category colours carry no meaning (decision 0043); for status use StatusLabel. Beyond five\n * categories, the icon and text tell them apart.\n *\n * @example\n * ```tsx\n * <CategoryLabel color=\"rose\" icon=\"creditCard\">\n * Shopping\n * </CategoryLabel>\n *\n * <CategoryLabel color=\"periwinkle\" variant=\"outlined\" size=\"medium\">\n * Travel\n * </CategoryLabel>\n * ```\n */\nexport const CategoryLabel: React.FC<CategoryLabelProps> = ({\n children,\n color = 'periwinkle',\n variant = 'filled',\n size = 'large',\n icon,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel\n}) => {\n const iconSize = size === 'medium' ? 'xs' : 'sm'\n // A blank aria-label is no label at all, so it falls back like a missing one\n const accessibleLabel = ariaLabel?.trim() ? ariaLabel : undefined\n\n return (\n <StyledCategoryLabel\n // A removed hue name passed from plain JavaScript renders as the default, periwinkle\n $color={displayColors.includes(color) ? color : 'periwinkle'}\n $variant={variant}\n $size={size}\n data-testid={dataTestId}\n >\n <VisibleContent aria-hidden={accessibleLabel ? 'true' : undefined}>\n {icon && (\n <Icon\n name={icon}\n size={iconSize}\n iconColor={variant === 'filled' ? 'inverse' : 'inherit'}\n />\n )}\n {children}\n </VisibleContent>\n {accessibleLabel && <HiddenLabel>{accessibleLabel}</HiddenLabel>}\n </StyledCategoryLabel>\n )\n}\n\nCategoryLabel.displayName = 'CategoryLabel'\n","import tokens from '../../../../lib/cssTokens'\nimport { forcedColors } from '../../../../lib/styleUtils'\nimport { ChipSurface } from './types'\n\nconst { component: { chip }, semantic } = tokens\n\ninterface StyledChipProps {\n $surface: ChipSurface\n $disabled?: boolean\n $clickable?: boolean\n $selected?: boolean\n}\n\n// The chip's fill and text for its surface and state, matching Button's approach\nexport const getVariantStyles = ({ $surface, $selected, $clickable, $disabled }: StyledChipProps) => {\n // Selected filter and input chips use the light-blue selected treatment (decision 0016).\n // The text darkens with the fill so every state stays at least 4.5:1.\n if ($selected) {\n // A selected disabled chip looks like any disabled chip; the checkmark keeps the\n // selected state visible (#110)\n if ($disabled) {\n const { disabled } = chip.variants.subtle\n return `\n background-color: ${disabled.backgroundColor};\n color: ${disabled.textColor};\n `\n }\n\n const { fill, text } = tokens.semantic.color\n const interactiveStates = $clickable\n return `\n background-color: ${fill['accent-muted']};\n color: ${text.accent};\n \n &:hover {\n background-color: ${interactiveStates ? fill['accent-muted-hover'] : fill['accent-muted']};\n color: ${interactiveStates ? text.accent : text.accent};\n }\n \n &:active {\n background-color: ${interactiveStates ? fill['accent-muted-pressed'] : fill['accent-muted']};\n color: ${interactiveStates ? text.accent : text.accent};\n }\n\n /* Forced colours drop the fill, so a selected chip takes the system selection colours\n (decision 0038); its checkmark follows the text colour */\n ${forcedColors} {\n forced-color-adjust: none;\n background-color: Highlight;\n border-color: Highlight;\n color: HighlightText;\n }\n `\n }\n \n switch ($surface) {\n case 'subtle':\n return `\n background-color: ${chip.variants.subtle.backgroundColor};\n color: ${chip.variants.subtle.textColor};\n \n &:hover {\n background-color: ${$disabled ? chip.variants.subtle.disabled.backgroundColor : ($clickable ? chip.variants.subtle.hover.backgroundColor : chip.variants.subtle.backgroundColor)};\n }\n \n &:active {\n background-color: ${$disabled ? chip.variants.subtle.disabled.backgroundColor : ($clickable ? chip.variants.subtle.active.backgroundColor : chip.variants.subtle.backgroundColor)};\n }\n \n ${$disabled ? `\n background-color: ${chip.variants.subtle.disabled.backgroundColor};\n color: ${chip.variants.subtle.disabled.textColor};\n ` : ''}\n `\n case 'default':\n default:\n return `\n background-color: ${chip.default.backgroundColor};\n color: ${chip.default.textColor};\n \n ${$disabled ? `\n background-color: ${chip.disabled.backgroundColor};\n color: ${chip.disabled.textColor};\n ` : ''}\n `\n }\n}\n\n// Chips have one size: 24px from the label scale as a minimum, with the content centred\n// and no vertical padding (decisions 0034 and 0035). Horizontal padding comes from the\n// semantic spacing scale (decision 0022).\nexport const sizeStyles = `\n font: ${chip.sizes.medium.font};\n min-height: ${semantic.size.label.medium};\n padding: 0 ${semantic.space.inset.sm};\n`\n\n","import styled from 'styled-components'\nimport tokens from '../../../../lib/cssTokens'\nimport { InternalStyledProps } from './types'\nimport { getVariantStyles, sizeStyles } from './utils'\nimport { forcedColors, forcedColorsEdge } from '../../../../lib/styleUtils'\n\nconst { component: { chip }, semantic } = tokens\n\n// Base styled component using direct prop interpolation like Button\nexport const StyledChip = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<InternalStyledProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: fit-content;\n height: max-content;\n border-radius: ${chip.default.borderRadius};\n box-sizing: border-box;\n user-select: none;\n white-space: nowrap;\n transition: ${semantic.motion.transition.feedback};\n cursor: ${props => props.$disabled ? 'not-allowed' : (props.$clickable ? 'pointer' : 'default')};\n \n /* Forced colours: an edge, and GrayText when disabled, since a span gets no system disabled\n colour (decision 0038). Before the variant styles, so a selected chip's Highlight border wins. */\n ${forcedColorsEdge}\n ${props => props.$disabled ? `${forcedColors} { color: GrayText; }` : ''}\n\n ${getVariantStyles}\n ${sizeStyles}\n \n &:focus-visible {\n outline: ${chip.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n }\n\n`\n\n// Icon container for selected indicator or leading icons\nexport const IconContainer = styled.span`\n display: inline-flex;\n align-items: center;\n margin-right: ${tokens.semantic.space[100]};\n`\n\n// Close button for dismissible chips\nexport const CloseButton = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $disabled?: boolean }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-left: ${tokens.semantic.space[200]};\n background: transparent;\n border: none;\n position: relative;\n width: ${chip.closeButton.size};\n height: ${chip.closeButton.size};\n padding: ${tokens.semantic.space[0]};\n\n /* The pointer target is at least 24 × 24px (WCAG 2.5.8, decision 0039): an invisible hit area\n as tall as the chip, centred on the 20px button. It stays inside the chip and its padding, so\n it can't overlap another target. */\n &::before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: ${semantic.size.label.medium};\n height: ${semantic.size.label.medium};\n transform: translate(-50%, -50%);\n }\n border-radius: ${tokens.semantic.radius.xs};\n cursor: ${props => props.$disabled ? 'not-allowed' : 'pointer'};\n color: inherit;\n transition: ${semantic.motion.transition.feedback};\n \n &:hover:not(:disabled) {\n background-color: ${tokens.semantic.color.fill['none-hover']};\n }\n \n &:active:not(:disabled) {\n background-color: ${tokens.semantic.color.fill['none-pressed']};\n }\n \n &:disabled {\n color: ${tokens.semantic.color.text.disabled};\n }\n \n &:focus-visible {\n outline: ${chip.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n border-radius: ${chip.default.borderRadius};\n }\n`\n","import React from 'react'\nimport { BaseChipProps, ChipVariant } from './shared/types'\nimport { StyledChip } from './shared/ChipBase'\n\nexport interface ChipProps extends BaseChipProps {\n /**\n * Visual style. The static Chip has one, `default` (decision 0016).\n * @default 'default'\n */\n variant?: ChipVariant\n /** Custom ARIA role override */\n role?: string\n /** Legacy title prop for backward compatibility */\n title?: string\n}\n\n/**\n * Chip - a static, non-interactive label for tags, categories and metadata.\n *\n * Chips are classified by job (decision 0016):\n * - Chip: a static label\n * - FilterChip: toggles a filter on and off\n * - InputChip: a removable value, such as an applied filter\n * - SuggestionChip: fills the agent input with a suggestion\n *\n * For a clickable action, use a Button.\n */\nexport const Chip: React.FC<ChipProps> = ({\n children,\n // One variant: a removed one passed from plain JavaScript renders as default\n variant: _variant,\n disabled = false,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n role,\n title,\n ...props\n}) => {\n // Removed props passed from plain JavaScript stay off the DOM\n const { onClick: _onClick, size: _size, ...domProps } = props as typeof props & { onClick?: unknown; size?: unknown }\n\n // Support legacy title prop\n const content = children !== undefined ? children : title\n\n return (\n <StyledChip\n $surface=\"default\"\n $disabled={disabled || undefined}\n role={role}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled ? 'true' : undefined}\n data-testid={dataTestId}\n {...domProps}\n >\n {content}\n </StyledChip>\n )\n}\n","import React from 'react'\nimport { Icon } from '../Icon'\nimport { BaseChipProps } from './shared/types'\nimport { StyledChip, IconContainer, CloseButton } from './shared/ChipBase'\n\nexport interface InputChipProps extends BaseChipProps {\n /** Whether the filter is in selected/applied state */\n selected?: boolean\n /** Callback function when the chip is dismissed via close button or keyboard */\n onDismiss?: () => void\n /** Custom ARIA role override */\n role?: string\n}\n\n/**\n * InputChip - A removable value, such as an applied filter, with an optional selected state\n * \n * Use this component to show values the user has entered or applied, such as filters.\n * When selected, displays a checkmark on the light-blue selected treatment (decision 0016).\n * A selected disabled chip uses the disabled colours and keeps its checkmark.\n * Optionally dismissible when onDismiss is provided.\n * \n * Features:\n * - Shows checkmark icon when selected\n * - Light-blue fill and blue text when selected and enabled; disabled colours when disabled\n * - Optional close (×) button when onDismiss is provided\n * - Keyboard dismissal with Delete or Backspace keys (when dismissible)\n * - Non-clickable body (only close button is interactive when present)\n * - Announces as \"status\" to screen readers\n */\nexport const InputChip: React.FC<InputChipProps> = ({\n children,\n selected = false,\n onDismiss,\n disabled = false,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n role,\n ...props\n}) => {\n const isDismissible = Boolean(onDismiss)\n \n const handleDismiss = (event: React.MouseEvent) => {\n event.stopPropagation() // Prevent event bubbling\n if (!disabled && onDismiss) {\n onDismiss()\n }\n }\n \n const handleKeyDown = (event: React.KeyboardEvent) => {\n // Handle dismiss with Delete or Backspace (only when dismissible)\n if (!disabled && isDismissible && onDismiss && (event.key === 'Delete' || event.key === 'Backspace')) {\n event.preventDefault()\n onDismiss()\n }\n }\n \n const handleCloseKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n if (!disabled && onDismiss) onDismiss()\n }\n }\n \n // Generate accessible label for close button\n const closeButtonLabel = typeof children === 'string' ? `Remove ${children}` : 'Remove filter'\n \n return (\n <StyledChip\n $surface=\"subtle\"\n $disabled={disabled || undefined}\n $clickable={false}\n $selected={selected}\n onKeyDown={handleKeyDown}\n role={role || 'status'}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled ? 'true' : undefined}\n data-testid={dataTestId}\n {...props}\n >\n {/* Show selected indicator when selected */}\n {selected && (\n <IconContainer aria-hidden=\"true\">\n <Icon name=\"check\" size=\"sm\" iconColor=\"inherit\" />\n </IconContainer>\n )}\n \n {children}\n \n {/* Show close button only when dismissible */}\n {isDismissible && (\n <CloseButton\n type=\"button\"\n onClick={handleDismiss}\n onKeyDown={handleCloseKeyDown}\n disabled={disabled}\n $disabled={disabled}\n aria-label={closeButtonLabel}\n tabIndex={0}\n data-testid={dataTestId ? `${dataTestId}-close` : undefined}\n >\n <Icon name=\"close\" size=\"sm\" iconColor=\"inherit\" />\n </CloseButton>\n )}\n </StyledChip>\n )\n}\n","import React from 'react'\nimport { Icon } from '../Icon'\nimport { BaseChipProps } from './shared/types'\nimport { StyledChip, IconContainer } from './shared/ChipBase'\n\nexport interface FilterChipProps extends BaseChipProps {\n /** Whether the chip is in selected state */\n selected: boolean\n /** Callback function when the chip is clicked/toggled */\n onClick: () => void\n}\n\n/**\n * FilterChip - Toggleable chip for quick filter controls (decision 0016)\n * \n * Use this component for multi-select filter controls where users can\n * see which options are active. Common in table filtering patterns where\n * users toggle filters on/off.\n * \n * Features:\n * - Shows checkmark icon when selected\n * - Entire chip is clickable to toggle\n * - Keyboard activation with Space or Enter\n * - Uses checkbox role with aria-checked\n * - Light-blue fill and blue text when selected and enabled; disabled colours when disabled\n *\n * Called `BooleanChip` before 3.0. For a removable value, use InputChip.\n */\nexport const FilterChip: React.FC<FilterChipProps> = ({\n children,\n selected,\n onClick,\n disabled = false,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}) => {\n const handleClick = () => {\n // Optional call: a plain JavaScript app that kept the pre-3.0 FilterChip (now InputChip) passes\n // no onClick, and its chip should stay inert rather than throw\n if (!disabled) {\n onClick?.()\n }\n }\n \n const handleKeyDown = (event: React.KeyboardEvent) => {\n // Handle activation with Space or Enter\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n handleClick()\n }\n }\n \n return (\n <StyledChip\n $surface=\"subtle\"\n $disabled={disabled || undefined}\n $clickable={!disabled}\n $selected={selected}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n tabIndex={disabled ? undefined : 0}\n role=\"checkbox\"\n aria-checked={selected ? 'true' : 'false'}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled ? 'true' : undefined}\n data-testid={dataTestId}\n {...props}\n >\n {/* Show selected indicator when selected */}\n {selected && (\n <IconContainer aria-hidden=\"true\">\n <Icon name=\"check\" size=\"sm\" iconColor=\"inherit\" />\n </IconContainer>\n )}\n \n {children}\n </StyledChip>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\nimport { forcedColors } from '../../../lib/styleUtils'\nimport { sizeStyles } from './shared/utils'\n\nconst { component: { chip }, semantic } = tokens\nconst { color } = semantic\n\nexport interface SuggestionChipProps {\n /** The suggestion. It's also the button's accessible name, so keep it short and self-explanatory. */\n children: React.ReactNode\n /** Called when the suggestion is picked. Put its text in the input; never send it (decision 0046). */\n onClick: () => void\n /** Disables the chip */\n disabled?: boolean\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\n// Outlined, with the naked fill ladder on hover and press (decisions 0030, 0046): the edge keeps it\n// visible on white, the page and AgentInput's docked band\nconst StyledSuggestionChip = styled.button`\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n margin: 0;\n box-sizing: border-box;\n border: ${semantic.border.width.thin} solid ${color.border.input};\n border-radius: ${chip.default.borderRadius};\n background-color: ${color.fill.none};\n color: ${color.text.default};\n cursor: pointer;\n text-align: start;\n /* A long suggestion wraps inside the chip rather than being cut off (issue 279) */\n white-space: normal;\n overflow-wrap: anywhere;\n transition: ${semantic.motion.transition.feedback};\n ${sizeStyles}\n\n &:hover:not(:disabled) {\n background-color: ${color.fill['none-hover']};\n }\n\n &:active:not(:disabled) {\n background-color: ${color.fill['none-pressed']};\n }\n\n &:focus-visible {\n outline: ${chip.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n }\n\n &:disabled {\n border-color: ${color.border.default};\n color: ${color.text.disabled};\n cursor: not-allowed;\n }\n\n /* Forced colours: a native button gets ButtonBorder and GrayText; keep the edge (decision 0038) */\n ${forcedColors} {\n border-color: ButtonBorder;\n\n &:disabled {\n border-color: GrayText;\n }\n }\n`\n\n/**\n * SuggestionChip - Offers text to put in the agent input\n *\n * The Suggestion chip type from decision 0046 (amending 0016): the one chip that acts on click.\n * Picking it fills the input so the user can edit before sending; it never sends or runs a command,\n * which is why it's a chip and not a Button. AgentInput renders these from its `suggestions` prop.\n *\n * Features:\n * - A native button: Enter and Space pick it, and its text is its accessible name\n * - Outlined, with the naked hover and pressed fills; no selected state\n * - One chip height (24px minimum, decision 0035); long text wraps instead of being cut off\n */\nexport const SuggestionChip: React.FC<SuggestionChipProps> = ({\n children,\n onClick,\n disabled = false,\n 'data-testid': dataTestId,\n}) => (\n <StyledSuggestionChip type=\"button\" onClick={onClick} disabled={disabled} data-testid={dataTestId}>\n {children}\n </StyledSuggestionChip>\n)\n\nSuggestionChip.displayName = 'SuggestionChip'\n","import React from 'react'\nimport styled from 'styled-components'\nimport { breakpoints, media } from '../../../lib/styleUtils'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic: { space } } = tokens\n\nexport type ContainerProps = {\n children?: React.ReactNode\n 'data-testid'?: string\n} & React.HTMLAttributes<HTMLDivElement>\n\nconst StyledContainer = styled.div`\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n padding-left: ${space[600]};\n padding-right: ${space[600]};\n \n ${media.sm} {\n max-width: ${breakpoints.sm};\n }\n \n ${media.md} {\n max-width: ${breakpoints.md};\n }\n \n ${media.lg} {\n max-width: ${breakpoints.lg};\n }\n \n ${media.xl} {\n max-width: ${breakpoints.xl};\n }\n \n ${media['2xl']} {\n max-width: ${breakpoints['2xl']};\n }\n`\n\nexport const Container = ({ children, ...props }: ContainerProps) => {\n return <StyledContainer {...props}>{children}</StyledContainer>\n}","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { media } from '../../../lib/styleUtils'\n\n\ntype PictureProps = {\n title: string\n src: string\n width?: number\n height?: number\n onClick?: () => void\n href?: string\n 'data-testid'?: string\n}\n\nconst PictureWrapper = styled.div`\n margin: 0 auto;\n \n ${media.sm} {\n margin-left: 0;\n margin-right: 0;\n }\n`\n\n// A clickable image answers input on the image itself (decision 0029, #185): it fades on hover and\n// one step further while pressed, and draws the system focus ring around the image, following its\n// rounded corners. Fading isn't movement, so it stays under reduced motion.\nconst clickableImage = css`\n display: block;\n cursor: pointer;\n\n img {\n transition: ${tokens.semantic.motion.transition.press};\n }\n\n &:hover img {\n opacity: ${tokens.semantic.opacity.hover};\n }\n\n &:active img {\n opacity: ${tokens.semantic.opacity.pressed};\n }\n\n &:focus-visible {\n outline: none;\n }\n\n &:focus-visible img {\n outline: ${tokens.semantic.border.focus};\n outline-offset: ${tokens.semantic.border.focusOffset};\n }\n`\n\nconst ImageLink = styled.a`\n ${clickableImage}\n`\n\nconst ImageButton = styled.button`\n border: none;\n background: none;\n padding: 0;\n width: 100%;\n ${clickableImage}\n`\n\nconst StyledImage = styled.img`\n width: 100%;\n height: auto;\n border-radius: ${tokens.semantic.radius.sm};\n display: block;\n`\n\nexport const Picture: React.FC<PictureProps> = ({ \n title, \n src, \n width = 1300, \n height = 630,\n onClick,\n href,\n 'data-testid': dataTestId\n}) => {\n const image = (\n <StyledImage\n src={src}\n alt={title}\n width={width}\n height={height}\n />\n )\n\n return (\n <PictureWrapper data-testid={dataTestId}>\n {href ? (\n <ImageLink href={href} aria-label={`Read more about ${title}`}>\n {image}\n </ImageLink>\n ) : onClick ? (\n <ImageButton onClick={onClick} aria-label={`Read more about ${title}`}>\n {image}\n </ImageButton>\n ) : (\n image\n )}\n </PictureWrapper>\n )\n}\n","import React from 'react'\nimport { parseISO, format, isToday, isYesterday, isThisWeek, startOfWeek } from 'date-fns'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic: { typography, color } } = tokens\n\n/**\n * How DateFormatter shows a date. `'relative'`, an alias of `'smart'`, was removed in 3.0 (#82).\n */\nexport type DateFormatMode = 'absolute' | 'smart'\n\nexport interface DateFormatterProps {\n /** ISO date string to format */\n dateString: string\n /** Format pattern (defaults to 'yyyy') */\n formatString?: string\n /**\n * `'absolute'` always uses `formatString`. `'smart'` shows \"Today\", \"Yesterday\" or the day name\n * for dates this week, and formats older dates with `formatString`.\n * @default 'absolute'\n */\n mode?: DateFormatMode\n /** Optional data-testid for testing */\n 'data-testid'?: string\n}\n\nconst TimeStyled = styled.time`\n font: ${typography.label};\n color: ${color.text.muted};\n`\n\n/**\n * Formats a date with smart relative/absolute logic\n */\nconst formatDateSmart = (date: Date, customFormat?: string): string => {\n // Relative labels for recent dates\n if (isToday(date)) return 'Today'\n if (isYesterday(date)) return 'Yesterday'\n \n // Show day name for dates within this week\n if (isThisWeek(date, { weekStartsOn: 1 })) {\n return format(date, 'EEEE') // \"Monday\", \"Tuesday\", etc.\n }\n \n // Fall back to custom format or default full date format\n return format(date, customFormat || 'MMMM dd, yyyy')\n}\n\nexport const DateFormatter: React.FC<DateFormatterProps> = ({ \n dateString, \n formatString,\n mode = 'absolute',\n 'data-testid': dataTestId\n}) => {\n const date = parseISO(dateString)\n \n let displayText: string\n \n switch (mode) {\n case 'smart':\n // Today, Yesterday or the day name for recent dates; formatted for older ones\n displayText = formatDateSmart(date, formatString)\n break\n case 'absolute':\n default:\n // Always use the format string (default 'yyyy')\n displayText = format(date, formatString || 'yyyy')\n break\n }\n \n return (\n <TimeStyled dateTime={dateString} data-testid={dataTestId}>\n {displayText}\n </TimeStyled>\n )\n}","import React from 'react'\nimport styled from 'styled-components'\nimport { Icon, type IconName } from '../Icon'\nimport tokens from '@/lib/cssTokens'\nimport { forcedColorsEdge } from '../../../lib/styleUtils'\n\nconst { semantic: { motion, border, space, size }, component: { iconButton, button } } = tokens\n\n// Height and width come from size.control as a minimum (decision 0034)\nconst control = {\n small: size.control.sm,\n medium: size.control.md,\n large: size.control.lg,\n} as const\n\n// Padding comes from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst padding = {\n small: space.inset.xs,\n medium: space.inset.sm,\n large: space.inset.md,\n} as const\n\nexport interface IconButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant: 'primary' | 'secondary' | 'naked'\n size?: 'small' | 'medium' | 'large'\n iconName: IconName\n url?: string\n // Accessibility props\n 'aria-label': string // Required for screen readers\n 'aria-describedby'?: string\n 'aria-expanded'?: boolean\n 'aria-pressed'?: boolean\n 'data-testid'?: string\n}\n\ninterface StyledButtonProps {\n $variant: 'primary' | 'secondary' | 'naked'\n $size: 'small' | 'medium' | 'large'\n}\n\n// Colours and motion come from Button's tokens, so IconButton's variants look and behave exactly like\n// Button's in every state (#130). Only the size and the icon differ\nconst variants = {\n primary: {\n bg: button.primary.backgroundColor,\n text: button.primary.textColor,\n hoverBg: button.hover.backgroundColor,\n activeBg: button.active.backgroundColor,\n disabledBg: button.disabled.backgroundColor,\n disabledText: button.disabled.textColor,\n },\n secondary: {\n bg: button.variants.secondary.backgroundColor,\n text: button.variants.secondary.textColor,\n hoverBg: button.variants.secondary.hover.backgroundColor,\n activeBg: button.variants.secondary.active.backgroundColor,\n disabledBg: button.variants.secondary.disabled.backgroundColor,\n disabledText: button.variants.secondary.disabled.textColor,\n },\n naked: {\n bg: button.variants.naked.backgroundColor,\n text: button.variants.naked.textColor,\n hoverBg: button.variants.naked.hover.backgroundColor,\n activeBg: button.variants.naked.active.backgroundColor,\n disabledBg: button.variants.naked.disabled.backgroundColor,\n disabledText: button.variants.naked.disabled.textColor,\n },\n} as const\n\n// JavaScript callers can pass any string, so an unknown variant falls back to primary, as before\nconst colours = (variant: StyledButtonProps['$variant']) => variants[variant] ?? variants.primary\n\nconst IconButtonStyled = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledButtonProps>`\n background-color: ${({ $variant }) => colours($variant).bg};\n color: ${({ $variant }) => colours($variant).text};\n border: none;\n border-radius: ${iconButton.primary.borderRadius};\n transition: ${motion.transition.feedback};\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n height: max-content;\n cursor: pointer;\n position: relative;\n\n min-width: ${({ $size }) => control[$size]};\n min-height: ${({ $size }) => control[$size]};\n padding: ${({ $size }) => padding[$size]};\n\n &:hover:not(:disabled) {\n background-color: ${({ $variant }) => colours($variant).hoverBg};\n }\n\n &:active:not(:disabled) {\n background-color: ${({ $variant }) => colours($variant).activeBg};\n }\n\n &:focus {\n outline: ${iconButton.focus.outline};\n outline-offset: ${border.focusOffset};\n }\n\n &:disabled {\n background-color: ${({ $variant }) => colours($variant).disabledBg};\n color: ${({ $variant }) => colours($variant).disabledText};\n cursor: not-allowed;\n }\n\n ${forcedColorsEdge}\n`\n\nexport const IconButton: React.FC<IconButtonProps> = ({ \n variant, \n size = 'medium', \n url, \n iconName = 'close',\n onClick,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n 'aria-expanded': ariaExpanded,\n 'aria-pressed': ariaPressed,\n 'data-testid': dataTestId,\n disabled,\n type = 'button',\n ...htmlProps \n}) => {\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (onClick) {\n onClick(event)\n } else if (url && url.trim() !== '') {\n // Use proper navigation instead of direct href assignment\n if (url.startsWith('http') || url.startsWith('//')) {\n window.open(url, '_blank', 'noopener,noreferrer')\n } else {\n window.location.assign(url)\n }\n }\n }\n\n const iconSize = size === 'large' ? 'lg' : size === 'small' ? 'sm' : 'md'\n \n return (\n <IconButtonStyled \n $variant={variant} \n $size={size} \n onClick={handleClick}\n disabled={disabled}\n type={type}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n aria-expanded={ariaExpanded}\n aria-pressed={ariaPressed}\n data-testid={dataTestId}\n {...htmlProps}\n >\n <Icon \n name={iconName} \n size={iconSize} \n iconColor=\"inherit\"\n aria-hidden=\"true\" // Hide icon from screen readers since button has aria-label\n />\n </IconButtonStyled>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Typography, type TypographyVariant, type TypographyColor } from '../Typography'\nimport tokens from '@/lib/cssTokens'\n\nexport type MoneyDisplayVariant = 'default' | 'positive' | 'negative' | 'neutral'\nexport type MoneyDisplaySize = 'small' | 'medium' | 'large' | 'xlarge'\nexport type MoneyDisplayWeight = 'regular' | 'medium' | 'bold'\nexport type MoneyDisplayAlign = 'left' | 'center' | 'right'\n\nexport interface MoneyDisplayProps {\n /** The monetary amount to display */\n amount: number\n /** Currency code (ISO 4217) */\n currency?: string\n /** Visual variant affecting color and style */\n variant?: MoneyDisplayVariant\n /** Show +/- sign prefix */\n showSign?: boolean\n /** Size of the amount display */\n size?: MoneyDisplaySize\n /** Font weight */\n weight?: MoneyDisplayWeight\n /** Locale for number formatting */\n locale?: string\n /** Align text */\n align?: MoneyDisplayAlign\n /** Data test id for testing */\n 'data-testid'?: string\n}\n\ninterface StyledWrapperProps {\n $align: MoneyDisplayAlign\n $weight: MoneyDisplayWeight\n}\n\nconst StyledWrapper = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledWrapperProps>`\n display: inline-flex;\n align-items: center;\n text-align: ${({ $align }) => $align};\n font-weight: ${({ $weight }) => tokens.semantic.fontWeight[$weight]};\n`\n\n// Map size to Typography variant\nconst sizeToTypographyVariant: Record<MoneyDisplaySize, TypographyVariant> = {\n small: 'caption',\n medium: 'body',\n large: 'h3',\n xlarge: 'h2'\n}\n\n// The minus sign, not a hyphen, so it reads and copies as minus (decision 0045)\nconst MINUS = '\\u2212'\n\nexport const MoneyDisplay: React.FC<MoneyDisplayProps> = ({\n amount,\n currency = 'AUD',\n variant = 'default',\n showSign = false,\n size = 'medium',\n weight = 'regular',\n locale = 'en-AU',\n align = 'left',\n 'data-testid': dataTestId\n}) => {\n // Format the number with Intl.NumberFormat\n const formatter = new Intl.NumberFormat(locale, {\n style: 'currency',\n currency: currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n \n const formattedAmount = formatter.format(Math.abs(amount))\n \n // A signed amount carries its sign as text, so the sign survives copying and is read aloud, and the\n // role colour repeats it (decision 0045). Negative amounts always show their sign.\n const isNegative = amount < 0 || variant === 'negative'\n const isPositive = !isNegative && ((showSign && amount > 0) || variant === 'positive')\n const sign = isNegative ? MINUS : isPositive ? '+' : ''\n\n const typographyVariant = sizeToTypographyVariant[size]\n const amountColor: TypographyColor =\n isNegative ? 'error' :\n isPositive ? 'success' :\n variant === 'neutral' ? 'subdued' :\n 'default'\n\n return (\n <StyledWrapper\n $align={align}\n $weight={weight}\n data-testid={dataTestId}\n >\n <Typography\n variant={typographyVariant}\n color={amountColor}\n as=\"span\"\n >\n {sign}{formattedAmount}\n </Typography>\n </StyledWrapper>\n )\n}\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\nimport { forcedColors, forcedColorsEdge, reducedMotion } from '../../../lib/styleUtils'\n\n// Destructure tokens\nconst { semantic } = tokens\nconst { color, motion, radius, component } = { ...semantic, component: tokens.component }\n\nexport interface ProgressBarProps {\n /** Progress value from 0 to 100 */\n value: number\n /** Orientation of the progress bar */\n variant?: 'horizontal' | 'vertical'\n /** Fill colour: `default` is near-black (`background.emphasis`); `success` and `error` use their status colours */\n color?: 'success' | 'error' | 'default'\n /** Height size for horizontal progress bar (default: md) */\n height?: 'sm' | 'md' | 'lg' | 'xl'\n /** Width size for vertical progress bar (default: md) */\n width?: 'sm' | 'md' | 'lg' | 'xl'\n /** Accessible name, e.g. \"Upload progress\". Provide this or aria-labelledby; falls back to \"Progress\" */\n 'aria-label'?: string\n /** ID of the visible element that names the progress bar */\n 'aria-labelledby'?: string\n /** Data attribute for testing */\n 'data-testid'?: string\n}\n\ninterface StyledProgressBarContainerProps {\n $variant: 'horizontal' | 'vertical'\n $height?: 'sm' | 'md' | 'lg' | 'xl'\n $width?: 'sm' | 'md' | 'lg' | 'xl'\n}\n\ninterface StyledProgressBarFillProps {\n $value: number\n $variant: 'horizontal' | 'vertical'\n $color: 'success' | 'error' | 'default'\n}\n\nconst ProgressBarContainer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledProgressBarContainerProps>`\n background-color: ${tokens.component.track.background};\n border-radius: ${radius.xs};\n overflow: hidden;\n\n /* Forced colours drop the track's fill, so the track gets an edge (decision 0038) */\n ${forcedColorsEdge}\n\n ${props => props.$variant === 'horizontal' && css`\n width: 100%;\n height: ${props.$height ? component.progressBar.sizes[props.$height].height : component.progressBar.sizes.md.height};\n `}\n\n ${props => props.$variant === 'vertical' && css`\n width: ${props.$width ? component.progressBar.sizes[props.$width].height : component.progressBar.sizes.md.height};\n height: 100%;\n `}\n`\n\nconst ProgressBarFill = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledProgressBarFillProps>`\n height: 100%;\n transition: width ${motion.duration.moderate} ${motion.easing.standard},\n height ${motion.duration.moderate} ${motion.easing.standard},\n background-color ${motion.duration.moderate} ${motion.easing.standard};\n\n ${reducedMotion} {\n transition: none;\n }\n\n /* The fill is the value, so it keeps a fill in forced colours, in the system selection colour (decision 0038) */\n ${forcedColors} {\n forced-color-adjust: none;\n background-color: Highlight;\n }\n\n ${props => {\n let backgroundColor\n switch (props.$color) {\n case 'success':\n backgroundColor = color.fill.success\n break\n case 'error':\n backgroundColor = color.fill.danger\n break\n case 'default':\n default:\n // Near-black, like Slider's fill (decision 0029)\n backgroundColor = color.fill.emphasis\n break\n }\n return css`background-color: ${backgroundColor};`\n }}\n\n ${props => props.$variant === 'horizontal' && css`\n width: ${Math.min(100, Math.max(0, props.$value))}%;\n `}\n\n ${props => props.$variant === 'vertical' && css`\n width: 100%;\n height: ${Math.min(100, Math.max(0, props.$value))}%;\n `}\n`\n\nexport const ProgressBar: React.FC<ProgressBarProps> = ({\n value,\n variant = 'horizontal',\n color = 'default',\n height,\n width,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'data-testid': dataTestId,\n}) => {\n // Blank values are no name at all, so they fall back like missing ones\n const label = ariaLabel?.trim() ? ariaLabel : undefined\n const labelledBy = ariaLabelledBy?.trim() ? ariaLabelledBy : undefined\n return (\n <ProgressBarContainer\n $variant={variant}\n $height={height}\n $width={width}\n data-testid={dataTestId}\n role=\"progressbar\"\n aria-label={label ?? (labelledBy ? undefined : 'Progress')}\n aria-labelledby={labelledBy}\n aria-valuenow={Math.min(100, Math.max(0, value))}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n <ProgressBarFill\n $value={value}\n $variant={variant}\n $color={color}\n />\n </ProgressBarContainer>\n )\n}\n\nexport default ProgressBar\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\n// Destructure tokens for cleaner access\nconst { separator: separatorTokens } = tokens.component\n// Margins come from the semantic separator spacing: no component spacing tokens (decision 0022)\nconst { space } = tokens.semantic\n\nexport interface DividerProps {\n /** Variant style of the divider */\n variant?: 'default' | 'strong' | 'minimal'\n /** Size variation affecting spacing */\n size?: 'small' | 'medium' | 'large' | 'xlarge'\n /** Orientation of the divider */\n orientation?: 'horizontal' | 'vertical'\n /** Data test id for testing */\n 'data-testid'?: string\n}\n\ninterface StyledDividerProps {\n $variant: DividerProps['variant']\n $size: DividerProps['size']\n $orientation: DividerProps['orientation']\n}\n\nconst StyledDivider = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledDividerProps>`\n border: none;\n \n /* Apply orientation */\n ${({ $orientation = 'horizontal' }) => {\n if ($orientation === 'vertical') {\n return `\n display: inline-block;\n height: auto;\n align-self: stretch;\n border-left: ${tokens.semantic.border.width.thin} solid;\n border-top: none;\n `\n }\n return `border-top: ${tokens.semantic.border.width.thin} solid;`\n }}\n \n /* Apply variant styles */\n ${({ $variant = 'default', $orientation = 'horizontal' }) => {\n const borderProperty = $orientation === 'vertical' ? 'border-left' : 'border-top'\n switch ($variant) {\n case 'strong':\n return `${borderProperty}: ${separatorTokens.variants.strong.border};`\n case 'minimal':\n return `${borderProperty}: ${separatorTokens.variants.minimal.border};`\n case 'default':\n default:\n return `${borderProperty}: ${separatorTokens.variants.default.border};`\n }\n }}\n \n /* Apply size styles (spacing) */\n ${({ $size = 'large', $variant = 'default', $orientation = 'horizontal' }) => {\n if ($variant === 'minimal' && $orientation === 'horizontal') {\n // Minimal variant always uses its predefined spacing for horizontal\n return `margin: ${space[600]} 0;`\n }\n \n if ($orientation === 'vertical') {\n // Vertical orientation uses horizontal margins (left/right)\n switch ($size) {\n case 'small':\n return `margin: 0 ${space[400]};`\n case 'medium':\n return `margin: 0 ${space[600]};`\n case 'xlarge':\n return `margin: 0 ${space[1200]};`\n case 'large':\n default:\n return `margin: 0 ${space[800]};`\n }\n }\n \n // Horizontal orientation uses vertical margins (top/bottom)\n switch ($size) {\n case 'small':\n return `margin: ${space[400]} 0;`\n case 'medium':\n return `margin: ${space[600]} 0;`\n case 'xlarge':\n return `margin: ${space[1200]} 0;`\n case 'large':\n default:\n return `margin: ${space[800]} 0;`\n }\n }}\n`\n\n/**\n * Divider is an atomic component that provides visual separation between content sections.\n * \n * Features:\n * - Multiple variants (default, strong, minimal)\n * - Size variations for different spacing needs\n * - Horizontal and vertical orientations\n * - Semantic token usage for consistent styling\n * - Full accessibility support\n * \n * @example\n * ```tsx\n * <Divider />\n * <Divider variant=\"strong\" size=\"xlarge\" />\n * <Divider variant=\"minimal\" />\n * <Divider orientation=\"vertical\" />\n * ```\n */\nexport const Divider: React.FC<DividerProps> = ({\n variant = 'default',\n size = 'large',\n orientation = 'horizontal',\n 'data-testid': dataTestId,\n}) => {\n return (\n <StyledDivider\n $variant={variant}\n $size={size}\n $orientation={orientation}\n data-testid={dataTestId}\n role=\"separator\"\n aria-orientation={orientation}\n />\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\nexport type StackDirection = 'column' | 'row'\nexport type StackAlign = 'center' | 'flex-start' | 'flex-end' | 'stretch' | 'baseline'\nexport type StackJustify = 'center' | 'flex-start' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly'\nexport type StackGap = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl'\n\nexport interface StackProps {\n children: React.ReactNode\n direction?: StackDirection\n alignItems?: StackAlign\n justifyContent?: StackJustify\n gap?: StackGap\n wrap?: boolean\n 'data-testid'?: string\n}\n\ninterface StyledStackProps {\n $direction: StackDirection\n $alignItems?: StackAlign\n $justifyContent?: StackJustify\n $gap: string\n $wrap: boolean\n}\n\nconst StyledStack = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})`\n display: flex;\n flex-direction: var(--stack-direction);\n align-items: var(--stack-align-items);\n justify-content: var(--stack-justify-content);\n gap: var(--stack-gap);\n flex-wrap: var(--stack-wrap);\n`\n\n// Each gap name maps to the space step that replaced its old spacing.layout token (decision 0031),\n// so every gap keeps its value\nconst GAP_SPACE: Record<StackGap, Exclude<keyof typeof tokens.semantic.space, 'inset'>> = {\n none: '0',\n xs: '100',\n sm: '200',\n md: '300',\n lg: '400',\n xl: '500',\n '2xl': '600',\n '3xl': '700',\n '4xl': '800',\n '5xl': '900',\n '6xl': '1000',\n}\n\n// Helper function to convert gap prop to CSS value\nconst getGapValue = (gap: StackGap): string => {\n const step = GAP_SPACE[gap]\n if (step) {\n return tokens.semantic.space[step]\n }\n\n // Fallback to medium spacing for an unknown gap (from untyped JavaScript)\n return tokens.semantic.space[300]\n}\n\nexport const Stack: React.FC<StackProps> = ({ \n children, \n direction = 'row', \n gap = 'md', \n alignItems, \n justifyContent,\n wrap = false,\n 'data-testid': dataTestId\n}) => {\n const gapValue = getGapValue(gap)\n \n // Create CSS custom properties object with proper typing\n const cssProps: React.CSSProperties = {\n '--stack-direction': direction,\n '--stack-align-items': alignItems || 'initial',\n '--stack-justify-content': justifyContent || 'initial',\n '--stack-gap': gapValue,\n '--stack-wrap': wrap ? 'wrap' : 'nowrap'\n } as React.CSSProperties\n \n return (\n <StyledStack \n style={cssProps}\n data-testid={dataTestId}\n >\n {children}\n </StyledStack>\n )\n}\n\nexport default Stack\n","// Shape indicators for the six coloured statuses (decision 0045): filled silhouettes on the\n// 24px grid, each the same outline as its status icon. Internal: they aren't public icons, so a\n// bare shape can't be shown without its label. The shape indicator (#264) and the small\n// StatusLabel and InlineAlert sizes render them at 12px or more, with a darker edge.\n\nexport type StatusShape = 'error' | 'serious' | 'warning' | 'success' | 'info' | 'inProgress'\n\nexport const statusShapes: Record<StatusShape, string> = {\n error: 'M22.5 12L17.25 21.0933L6.75 21.0933L1.5 12L6.75 2.9067L17.25 2.9067Z',\n serious: 'M12 2L22 12L12 22L2 12Z',\n warning: 'M12 2.5L22 20.5L2 20.5Z',\n success: 'M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2Z',\n info: 'M7 2H17A5 5 0 0 1 22 7V17A5 5 0 0 1 17 22H7A5 5 0 0 1 2 17V7A5 5 0 0 1 7 2Z',\n inProgress: 'M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2ZM12 4A8 8 0 1 0 12 20A8 8 0 1 0 12 4ZM12 6A6 6 0 0 1 12 18Z',\n}\n","import styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { statusShapes, type StatusShape as StatusShapeName } from '../../../lib/statusShapes'\n\n// The shape indicator: at least 12px (decision 0045), filled with the current text colour, which is\n// the label's role colour at 5.3:1 or more on its tint, so it needs no edge. Decorative: the text\n// beside it names the status. Internal to the status family (#264): not exported from the package.\nconst Mark = styled.svg`\n flex: none;\n width: ${tokens.semantic.size.icon.xs};\n height: ${tokens.semantic.size.icon.xs};\n fill: currentColor;\n`\n\nexport const StatusShape = ({ shape }: { shape: StatusShapeName }) => (\n <Mark viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\" data-shape={shape}>\n <path d={statusShapes[shape]} />\n </Mark>\n)\n","import React from 'react'\nimport styled, { keyframes } from 'styled-components'\nimport { Icon } from '../Icon/Icon'\nimport type { IconName } from '../../../types/icons'\nimport type { StatusShape as StatusShapeName } from '../../../lib/statusShapes'\nimport { StatusShape } from './StatusShape'\nimport { forcedColorsEdge, reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\nimport tokens from '@/lib/cssTokens'\n\n// Destructure tokens for cleaner access\nconst { status: statusColors } = tokens.component\nconst { space, radius } = tokens.semantic\nconst { transition, duration, easing } = tokens.semantic.motion\nconst { label: labelHeight } = tokens.semantic.size\nconst { label } = tokens.component.badge\n\n/**\n * Status type options for StatusLabel\n */\nexport type StatusType = \n | 'pending' \n | 'completed' \n | 'failed' \n | 'cancelled' \n | 'processing' \n | 'scheduled'\n\n/**\n * Size options for StatusLabel\n */\nexport type StatusSize = 'small' | 'medium'\n\n/**\n * Props for StatusLabel\n */\nexport interface StatusLabelProps {\n /**\n * The status type to display\n */\n status: StatusType\n\n /**\n * Optional custom label (defaults to status name)\n */\n label?: string\n\n /**\n * Size: small (20px) or medium (24px)\n * @default 'medium'\n */\n size?: StatusSize\n\n /**\n * Whether status changes should be announced to screen readers\n * @default true\n */\n liveRegion?: boolean\n\n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n\n /**\n * Accessible label override. Used as the status's name and announced instead of the visible\n * text and icon (#78).\n */\n 'aria-label'?: string\n}\n\ninterface StyledStatusLabelProps {\n $status: StatusType\n $size: StatusSize\n}\n\nconst scaleIn = keyframes`\n from {\n opacity: 0;\n transform: scale(0.8);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n`\n\nconst getStatusConfig = (status: StatusType) => {\n // Each status's icon and, for the coloured statuses, its shape indicator (decision 0045). The\n // neutral statuses have no shape: at the small size they're plain text.\n const configs: Record<StatusType, { color: string; bgColor: string; icon: IconName; shape?: StatusShapeName; label: string }> = {\n pending: {\n color: statusColors.pending.text,\n bgColor: statusColors.pending.background,\n icon: 'statusPending',\n label: 'Pending'\n },\n completed: {\n color: statusColors.completed.text,\n bgColor: statusColors.completed.background,\n icon: 'statusSuccess',\n shape: 'success',\n label: 'Completed'\n },\n failed: {\n color: statusColors.failed.text,\n bgColor: statusColors.failed.background,\n icon: 'statusError',\n shape: 'error',\n label: 'Failed'\n },\n cancelled: {\n color: statusColors.cancelled.text,\n bgColor: statusColors.cancelled.background,\n icon: 'statusCancelled',\n label: 'Cancelled'\n },\n processing: {\n color: statusColors.processing.text,\n bgColor: statusColors.processing.background,\n icon: 'statusInProgress',\n shape: 'inProgress',\n label: 'Processing'\n },\n scheduled: {\n color: statusColors.scheduled.text,\n bgColor: statusColors.scheduled.background,\n icon: 'statusScheduled',\n label: 'Scheduled'\n }\n }\n \n return configs[status]\n}\n\n// Size configuration\nconst sizeConfig = {\n small: {\n height: labelHeight.small,\n padding: `${space[100]} ${space[200]}`,\n font: label.typography.small,\n gap: space[100],\n iconSize: 'xs' as const\n },\n medium: {\n height: labelHeight.medium,\n padding: `${space[100]} ${space[200]}`,\n font: label.typography.medium,\n gap: space[100],\n iconSize: 'sm' as const\n }\n}\n\nconst StyledStatusLabel = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledStatusLabelProps>`\n box-sizing: border-box; /* the height includes padding, without relying on a global reset */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: ${radius.full};\n white-space: nowrap;\n user-select: none;\n animation: ${scaleIn} ${duration.moderate} ${easing.decelerate};\n transition: ${transition.feedback};\n\n /* Under reduced motion the label appears without scaling in, and colours change at once */\n ${reducedMotion} {\n animation: none;\n transition: none;\n }\n\n /* Forced colours drop the fill, so the label keeps its shape with an edge (decision 0038) */\n ${forcedColorsEdge}\n \n /* Size styles */\n ${({ $size }) => {\n const size = sizeConfig[$size]\n return `\n height: ${size.height};\n padding: ${size.padding};\n font: ${size.font};\n font-weight: ${label.fontWeight};\n gap: ${size.gap};\n `\n }}\n \n /* Status color styles */\n ${({ $status }) => {\n const config = getStatusConfig($status)\n return `\n background-color: ${config.bgColor};\n color: ${config.color};\n `\n }}\n`\n\nconst ScreenReaderOnly = styled.span`\n ${visuallyHidden}\n`\n\n// The visible content, hidden from assistive technology when an aria-label replaces it.\n// display: contents keeps the root's flex layout and gap.\nconst VisibleContent = styled.span`\n display: contents;\n`\n\n/**\n * StatusLabel's implementation. Internal: not exported from the package. It always shows the status\n * icon at the medium size, and at the small size the shape for coloured statuses (decisions 0018,\n * 0045).\n */\nexport const StatusLabelBase: React.FC<StatusLabelProps> = ({\n status,\n label,\n size = 'medium',\n liveRegion = true,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel\n}) => {\n const statusConfig = getStatusConfig(status)\n const sizeStyles = sizeConfig[size]\n const displayLabel = label || statusConfig.label\n // A blank aria-label is no label at all, so it falls back like a missing one\n const accessibleLabel = ariaLabel?.trim() ? ariaLabel : undefined\n\n return (\n <StyledStatusLabel\n $status={status}\n $size={size}\n role=\"status\"\n aria-label={accessibleLabel || `Status: ${displayLabel}`}\n // role=\"status\" is implicitly polite, so turning announcements off needs an explicit \"off\"\n aria-live={liveRegion ? 'polite' : 'off'}\n aria-atomic={liveRegion ? 'true' : undefined}\n data-testid={dataTestId}\n >\n {/* A live region announces its content, not its name, so a provided aria-label replaces the\n content for assistive technology as well (#78) */}\n <VisibleContent aria-hidden={accessibleLabel ? 'true' : undefined}>\n {/* A 12px outline icon is too small to read, so the small size shows the status's shape\n instead, in the label's colour (decision 0045); neutral statuses show text only */}\n {size === 'medium' && (\n <Icon\n name={statusConfig.icon}\n size={sizeStyles.iconSize}\n iconColor=\"inherit\"\n />\n )}\n {size === 'small' && statusConfig.shape && (\n <StatusShape shape={statusConfig.shape} />\n )}\n {displayLabel}\n <ScreenReaderOnly>\n {status} status\n </ScreenReaderOnly>\n </VisibleContent>\n {accessibleLabel && <ScreenReaderOnly>{accessibleLabel}</ScreenReaderOnly>}\n </StyledStatusLabel>\n )\n}\n","import React from 'react'\nimport { StatusLabelBase, type StatusLabelProps } from './StatusLabelBase'\n\nexport type { StatusLabelProps, StatusType, StatusSize } from './StatusLabelBase'\n\n/**\n * StatusLabel conveys the status of something, such as a transaction or task (decision 0018).\n *\n * Uses only the status colour tokens and always shows its text, so status is never conveyed by\n * colour alone (decision 0045). Medium shows the status icon. Small shows the status shape for\n * completed, failed and processing, and text only for the neutral pending, scheduled and\n * cancelled, so keep the label visible. Not interactive. Announces changes politely to screen\n * readers.\n *\n * @example\n * ```tsx\n * <StatusLabel status=\"completed\" />\n *\n * <StatusLabel status=\"pending\" label=\"Awaiting approval\" size=\"small\" />\n * ```\n */\nexport const StatusLabel: React.FC<StatusLabelProps> = (props) => <StatusLabelBase {...props} />\n\nStatusLabel.displayName = 'StatusLabel'\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic } = tokens\nconst { color, size } = semantic\nconst { label } = tokens.component.badge\nconst { space } = semantic\nconst { radius } = semantic\n\nexport interface TagProps {\n /**\n * Text content to display in the tag\n */\n children: React.ReactNode\n \n /**\n * Visual variant. Tag is neutral metadata: use `default`, or `emphasis` (near-black) to make a\n * tag stand out. For a status, use `StatusLabel` (decision 0029).\n * @default 'default'\n */\n variant?: 'default' | 'emphasis'\n \n /**\n * Whether to show a border\n * @default true\n */\n border?: boolean\n\n /**\n * Size: small (20px) for dense layouts, or medium (24px). Decision 0018 size scale.\n * @default 'medium'\n */\n size?: 'small' | 'medium'\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\ninterface StyledTagProps {\n $variant: TagProps['variant']\n $border: boolean\n $size: NonNullable<TagProps['size']>\n}\n\nconst StyledTag = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledTagProps>`\n box-sizing: border-box; /* the height includes padding and border, without relying on a global reset */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: ${radius.sm};\n user-select: none;\n white-space: nowrap;\n\n /* Size (decision 0018): small has no vertical padding so the text line fits inside 20px */\n height: ${({ $size }) => size.label[$size]};\n padding: ${({ $size }) => $size === 'small' ? `0 ${space[200]}` : `${space[100]} ${space[200]}`};\n font: ${label.typography.small};\n font-weight: ${label.fontWeight};\n \n /* Variant styles */\n background-color: ${({ $variant }) => {\n switch ($variant) {\n case 'emphasis':\n return color.fill.emphasis\n default:\n return color.fill.muted\n }\n }};\n \n color: ${({ $variant }) => {\n switch ($variant) {\n case 'emphasis':\n return color.text.inverse\n default:\n return color.text.default\n }\n }};\n \n border: ${({ $variant, $border }) => {\n if (!$border) return 'none'\n \n switch ($variant) {\n case 'emphasis':\n return `${semantic.border.width.thin} solid ${color.fill.emphasis}`\n default:\n return `${semantic.border.width.thin} solid ${color.border.default}`\n }\n }};\n`\n\n/**\n * Tag component for categorizing and labeling content\n * \n * A static, non-interactive label used to categorize elements or objects in the UI.\n * Tags help users quickly identify and understand content classification.\n */\nexport const Tag: React.FC<TagProps> = ({\n children,\n variant = 'default',\n border = true,\n size: tagSize = 'medium',\n 'data-testid': dataTestId,\n ...props\n}) => {\n return (\n <StyledTag\n $variant={variant}\n $border={border}\n $size={tagSize}\n data-testid={dataTestId}\n data-variant={variant}\n data-border={border}\n role=\"status\"\n aria-label={typeof children === 'string' ? `Tag: ${children}` : undefined}\n {...props}\n >\n {children}\n </StyledTag>\n )\n}\n","import { useEffect, useState, type RefObject } from 'react'\n// The exit timer needs the resolved duration, not its CSS variable (decision 0041)\n// eslint-disable-next-line no-restricted-imports\nimport tokenValues from '../styles/tokens.json'\n\n// How long an exiting element stays mounted: the duration of `exitAnimation` in styleUtils. A timer\n// needs the resolved value, not the CSS variable (decision 0041).\nexport const EXIT_DURATION_MS = parseInt(tokenValues.semantic.motion.duration.fast, 10)\n\n/**\n * Keeps an element mounted for `exitMs` after `isOpen` turns false, so its exit\n * animation can run before it unmounts (decision 0005).\n */\nexport function usePresence(isOpen: boolean, exitMs: number = EXIT_DURATION_MS) {\n const [isMounted, setIsMounted] = useState(isOpen)\n\n useEffect(() => {\n if (isOpen) {\n setIsMounted(true)\n return\n }\n const timer = setTimeout(() => setIsMounted(false), exitMs)\n return () => clearTimeout(timer)\n }, [isOpen, exitMs])\n\n return {\n isPresent: isOpen || isMounted,\n isExiting: !isOpen && isMounted,\n }\n}\n\n/**\n * Makes an element inert while `isInert` is true, so an exiting overlay's controls leave\n * the tab order and can't be activated. Set through the DOM because React 18 has no\n * `inert` prop.\n */\nexport function useInert(ref: RefObject<HTMLElement | null>, isInert: boolean) {\n useEffect(() => {\n const node = ref.current\n if (!node) return\n if (isInert) node.setAttribute('inert', '')\n else node.removeAttribute('inert')\n }, [ref, isInert])\n}\n","// Places a floating element (Tooltip, Menu) next to its anchor, without a positioning library\n// (P8). Pure geometry, so it can be tested without a browser: the caller measures both elements\n// and applies the result as `top` and `left` on a `position: fixed` element.\n\nexport type FloatingSide = 'top' | 'right' | 'bottom' | 'left'\nexport type FloatingAlign = 'start' | 'center' | 'end'\n\nexport interface FloatingRect {\n top: number\n left: number\n width: number\n height: number\n}\n\nexport interface FloatingOptions {\n /** The anchor's box, from getBoundingClientRect */\n anchor: FloatingRect\n /** The floating element's size */\n floating: { width: number; height: number }\n /** The side to place it on; it flips to the opposite side when that has more room */\n side: FloatingSide\n /** Where it lines up along the anchor's edge */\n align: FloatingAlign\n /** The gap between the anchor and the floating element, in px */\n offset: number\n /** The viewport's size */\n viewport: { width: number; height: number }\n /** The smallest distance kept from the viewport's edges, in px */\n margin: number\n}\n\nexport interface FloatingPosition {\n top: number\n left: number\n /** The side it ended up on, after any flip */\n side: FloatingSide\n}\n\nconst opposite: Record<FloatingSide, FloatingSide> = { top: 'bottom', bottom: 'top', left: 'right', right: 'left' }\n\n// The room between the anchor and the viewport edge on each side\nconst room = (side: FloatingSide, { anchor, viewport, margin }: FloatingOptions) => {\n switch (side) {\n case 'top': return anchor.top - margin\n case 'bottom': return viewport.height - (anchor.top + anchor.height) - margin\n case 'left': return anchor.left - margin\n case 'right': return viewport.width - (anchor.left + anchor.width) - margin\n }\n}\n\nconst clamp = (value: number, min: number, max: number) => Math.max(min, Math.min(value, max))\n\nexport function placeFloating(options: FloatingOptions): FloatingPosition {\n const { anchor, floating, align, offset, viewport, margin } = options\n const vertical = (s: FloatingSide) => s === 'top' || s === 'bottom'\n\n // Flip when the preferred side is too small and the opposite side has more room\n let side = options.side\n const needed = (vertical(side) ? floating.height : floating.width) + offset\n if (room(side, options) < needed && room(opposite[side], options) > room(side, options)) {\n side = opposite[side]\n }\n\n // Main axis: beside the anchor, `offset` away\n let top = 0\n let left = 0\n if (side === 'top') top = anchor.top - offset - floating.height\n if (side === 'bottom') top = anchor.top + anchor.height + offset\n if (side === 'left') left = anchor.left - offset - floating.width\n if (side === 'right') left = anchor.left + anchor.width + offset\n\n // Cross axis: aligned to the anchor's start, centre or end, then kept inside the viewport\n if (vertical(side)) {\n if (align === 'start') left = anchor.left\n if (align === 'center') left = anchor.left + (anchor.width - floating.width) / 2\n if (align === 'end') left = anchor.left + anchor.width - floating.width\n left = clamp(left, margin, viewport.width - floating.width - margin)\n } else {\n if (align === 'start') top = anchor.top\n if (align === 'center') top = anchor.top + (anchor.height - floating.height) / 2\n if (align === 'end') top = anchor.top + anchor.height - floating.height\n top = clamp(top, margin, viewport.height - floating.height - margin)\n }\n\n return { top: Math.round(top), left: Math.round(left), side }\n}\n\n/**\n * The element that actually has a box inside a wrapper: Tooltip and Menu wrap their trigger in a\n * `display: contents` span, and a trigger can be nested in more than one (a Tooltip inside a Menu's\n * trigger), so this steps down until it finds an element that lays out.\n */\nexport function laidOutElement(wrapper: Element | null): Element | null {\n let element = wrapper?.firstElementChild ?? null\n while (element && typeof getComputedStyle !== 'undefined' && getComputedStyle(element).display === 'contents') {\n element = element.firstElementChild\n }\n return element\n}\n","import { useEffect, useLayoutEffect, type RefObject } from 'react'\n// Placement needs resolved lengths, not CSS variables (decision 0041)\nimport tokenValues from '../styles/tokens.json'\nimport { laidOutElement, placeFloating, type FloatingAlign, type FloatingSide } from './floatingPosition'\n\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n\n// The Popover API puts a floating element in the top layer: above everything, Modal included,\n// never clipped by a scroll container, with no z-index (#326). It's in every current browser;\n// without it the element is still position: fixed, so it escapes overflow clipping.\nconst supportsPopover = () => typeof HTMLElement !== 'undefined' && 'showPopover' in HTMLElement.prototype\n\nconst remToPx = (value: string) =>\n parseFloat(value) * (parseFloat(getComputedStyle(document.documentElement).fontSize) || 16)\n\ninterface FloatingLayerOptions {\n /** Whether the floating element is rendered */\n isPresent: boolean\n /** The floating element: `position: fixed`, placed with top and left */\n floatingRef: RefObject<HTMLElement | null>\n /** The `display: contents` wrapper around the trigger */\n anchorRef: RefObject<Element | null>\n side: FloatingSide\n align: FloatingAlign\n /**\n * Called when the trigger may have moved away from the floating element: the page or a container\n * scrolled (anything but the floating element itself), or the window resized\n */\n onDetach: () => void\n}\n\n/**\n * Shows a floating element (Tooltip, Menu) in the top layer beside its trigger, before the browser\n * paints, and places it again whenever its size changes. A gap of `space.100` separates it from the\n * trigger, and it keeps `space.200` from the viewport's edges.\n */\nexport function useFloatingLayer({ isPresent, floatingRef, anchorRef, side, align, onDetach }: FloatingLayerOptions) {\n useIsomorphicLayoutEffect(() => {\n const floating = floatingRef.current\n if (!isPresent || !floating) return\n if (supportsPopover() && !floating.matches(':popover-open')) {\n floating.setAttribute('popover', 'manual')\n floating.showPopover()\n }\n const place = () => {\n const trigger = laidOutElement(anchorRef.current)\n if (!trigger) return\n const anchor = trigger.getBoundingClientRect()\n const { width, height } = floating.getBoundingClientRect()\n const position = placeFloating({\n anchor,\n floating: { width, height },\n side,\n align,\n offset: remToPx(tokenValues.semantic.space[100]),\n viewport: { width: window.innerWidth, height: window.innerHeight },\n margin: remToPx(tokenValues.semantic.space[200]),\n })\n floating.style.top = `${position.top}px`\n floating.style.left = `${position.left}px`\n floating.dataset.side = position.side\n }\n place()\n if (typeof ResizeObserver === 'undefined') return\n const observer = new ResizeObserver(place)\n observer.observe(floating)\n return () => observer.disconnect()\n }, [isPresent, side, align, floatingRef, anchorRef])\n\n useEffect(() => {\n if (!isPresent) return\n const onScroll = (event: Event) => {\n if (event.target instanceof Node && floatingRef.current?.contains(event.target)) return\n onDetach()\n }\n window.addEventListener('scroll', onScroll, true)\n window.addEventListener('resize', onDetach)\n return () => {\n window.removeEventListener('scroll', onScroll, true)\n window.removeEventListener('resize', onDetach)\n }\n }, [isPresent, floatingRef, onDetach])\n}\n","/**\n * Whether focus arrived from the keyboard rather than a click or tap, so a component can show\n * something on keyboard focus only (a Tooltip, SidebarNav's highlight). Browsers without\n * `:focus-visible` treat every focus as keyboard focus.\n */\nexport function isKeyboardFocus(target: EventTarget | null): boolean {\n if (!(target instanceof Element)) return false\n try {\n return target.matches(':focus-visible')\n } catch {\n return true\n }\n}\n","import React, { useCallback, useEffect, useId, useRef, useState } from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n// Timers need resolved durations, not CSS variables (decision 0041)\n// eslint-disable-next-line no-restricted-imports\nimport tokenValues from '../../../styles/tokens.json'\nimport { exitAnimation, forcedColorsEdge, visuallyHidden } from '../../../lib/styleUtils'\nimport { usePresence } from '../../../lib/usePresence'\nimport { type FloatingAlign, type FloatingSide } from '../../../lib/floatingPosition'\nimport { useFloatingLayer } from '../../../lib/useFloatingLayer'\nimport { isKeyboardFocus } from '../../../lib/keyboardFocus'\n\nconst { semantic } = tokens\nconst { motion } = tokenValues.semantic\n\n// How long the pointer rests before the tooltip opens (#326)\nconst HINT_DELAY_MS = parseInt(motion.delay.hint, 10)\n// Moving to another trigger within this window opens its tooltip at once, so a rail feels immediate\nconst SKIP_DELAY_MS = parseInt(motion.duration.slow, 10)\n// The grace period for the pointer to cross from the trigger onto the tooltip (WCAG 1.4.13)\nconst CLOSE_GRACE_MS = parseInt(motion.duration.fast, 10)\n\n// Shared by every Tooltip: only one is open at a time, and the next one opens at once while one\n// is open or within the skip-delay window after it closed\nlet lastClosedAt = 0\nlet active: { owner: object; close: () => void } | null = null\n\nexport type TooltipSide = FloatingSide\nexport type TooltipAlign = FloatingAlign\n\nexport interface TooltipProps {\n /** The tooltip's text. In `label` mode it repeats the trigger's existing accessible name. */\n text: string\n /**\n * `label` (default) shows the name the trigger already has, such as an IconButton's\n * `aria-label`, and is hidden from assistive technology so the name isn't announced twice.\n * `description` adds non-essential help, linked to the trigger with `aria-describedby`. Hover\n * text can't be reached on touch screens, so anything a user needs must be visible text.\n * @default 'label'\n */\n kind?: 'label' | 'description'\n /**\n * The side of the trigger it opens on. It flips to the opposite side when there's no room.\n * @default 'top'\n */\n side?: TooltipSide\n /**\n * Where it lines up along the trigger's edge.\n * @default 'center'\n */\n align?: TooltipAlign\n /** One focusable element: the trigger */\n children: React.ReactElement\n /** Test identifier for the tooltip bubble */\n 'data-testid'?: string\n}\n\nconst fadeIn = keyframes`\n from { opacity: 0; }\n`\n\n// A fade, so it needs no reduced-motion fallback (0015). Entrances decelerate (0037).\nconst Bubble = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $exiting: boolean }>`\n /* Reset the popover defaults: it's placed with top and left */\n position: fixed;\n inset: auto;\n top: 0;\n left: 0;\n margin: 0;\n overflow: visible;\n box-sizing: border-box;\n max-width: ${semantic.size[7500]};\n padding: ${semantic.space.inset.xs} ${semantic.space.inset.sm};\n border: none;\n border-radius: ${semantic.radius.sm};\n background-color: ${semantic.color.fill.inverse};\n color: ${semantic.color.text.inverse};\n font: ${semantic.typography.small};\n overflow-wrap: break-word;\n pointer-events: auto;\n animation: ${fadeIn} ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate}\n ${({ $exiting }) => ($exiting ? exitAnimation : css``)};\n\n ${forcedColorsEdge}\n`\n\nconst Description = styled.span`\n ${visuallyHidden}\n`\n\n// The trigger's wrapper takes no box of its own, so the trigger lays out as if unwrapped\nconst Anchor = styled.span`\n display: contents;\n`\n\n/**\n * A short label or hint that appears beside a control on hover or keyboard focus (#326).\n *\n * Opens after `motion.delay.hint` of hover, at once on keyboard focus, and at once when the pointer\n * moves on from another tooltip. Stays open while the pointer is over it; closes on pointer leave,\n * blur, scroll and Escape. Doesn't open on touch.\n */\nexport const Tooltip = ({\n text,\n kind = 'label',\n side = 'top',\n align = 'center',\n children,\n 'data-testid': dataTestId,\n}: TooltipProps) => {\n const descriptionId = useId()\n const anchorRef = useRef<HTMLSpanElement>(null)\n const bubbleRef = useRef<HTMLDivElement>(null)\n const openTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n const closeTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n const [owner] = useState(() => ({}))\n // Set by a press, so the focus that follows a click or tap doesn't reopen the tooltip\n const pressed = useRef(false)\n const [isOpen, setIsOpen] = useState(false)\n const { isPresent, isExiting } = usePresence(isOpen)\n\n const clearTimers = () => {\n clearTimeout(openTimer.current)\n clearTimeout(closeTimer.current)\n }\n\n const close = useCallback(() => {\n clearTimers()\n if (active?.owner === owner) {\n active = null\n lastClosedAt = Date.now()\n }\n setIsOpen(false)\n }, [owner])\n\n const open = useCallback(() => {\n clearTimers()\n if (active && active.owner !== owner) active.close()\n active = { owner, close }\n setIsOpen(true)\n }, [owner, close])\n\n const scheduleOpen = () => {\n clearTimeout(closeTimer.current)\n if (isOpen) return\n // Moving straight from one trigger to the next (another tooltip still open) or just after one\n // closed skips the delay, so a rail feels immediate\n if (active || Date.now() - lastClosedAt < SKIP_DELAY_MS) return open()\n clearTimeout(openTimer.current)\n openTimer.current = setTimeout(open, HINT_DELAY_MS)\n }\n\n const scheduleClose = () => {\n clearTimeout(openTimer.current)\n clearTimeout(closeTimer.current)\n closeTimer.current = setTimeout(close, CLOSE_GRACE_MS)\n }\n\n useEffect(\n () => () => {\n clearTimers()\n if (active?.owner === owner) active = null\n },\n [owner]\n )\n\n // While open: Escape closes it without moving focus, and before anything else hears the key\n // (an Escape meant for the tooltip mustn't also close a Modal)\n useEffect(() => {\n if (!isOpen) return\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return\n event.stopPropagation()\n close()\n }\n window.addEventListener('keydown', onKeyDown, true)\n return () => window.removeEventListener('keydown', onKeyDown, true)\n }, [isOpen, close])\n\n // In the top layer beside the trigger; scrolling or resizing closes it, since the trigger moves\n useFloatingLayer({ isPresent, floatingRef: bubbleRef, anchorRef, side, align, onDetach: close })\n\n const child = React.Children.only(children) as React.ReactElement<{ 'aria-describedby'?: string }>\n const describedBy = [child.props['aria-describedby'], kind === 'description' ? descriptionId : undefined]\n .filter(Boolean)\n .join(' ') || undefined\n\n return (\n <Anchor\n ref={anchorRef}\n onPointerEnter={(event) => event.pointerType !== 'touch' && scheduleOpen()}\n onPointerLeave={(event) => event.pointerType !== 'touch' && scheduleClose()}\n onFocus={(event) => {\n // Keyboard focus opens it at once; a click's or tap's focus doesn't\n if (pressed.current) {\n pressed.current = false\n return\n }\n if (isKeyboardFocus(event.target)) open()\n }}\n onBlur={() => {\n // A press on an already focused trigger has no focus to skip; don't carry it over\n pressed.current = false\n close()\n }}\n // Pressing the trigger acts on it, so the hint has done its job\n onPointerDown={() => {\n pressed.current = true\n close()\n }}\n >\n {React.cloneElement(child, { 'aria-describedby': describedBy })}\n {kind === 'description' && <Description id={descriptionId}>{text}</Description>}\n {isPresent && (\n // Hidden from assistive technology: a label repeats the trigger's name, and a\n // description reaches it through aria-describedby on the always-present text above\n <Bubble ref={bubbleRef} aria-hidden=\"true\" $exiting={isExiting} data-testid={dataTestId}>\n {text}\n </Bubble>\n )}\n </Anchor>\n )\n}\n\nTooltip.displayName = 'Tooltip'\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\nimport { Icon } from '../Icon'\n\nconst { semantic } = tokens\nconst { color, typography, size } = semantic\n\nexport type AILabelKind = 'suggested' | 'removal'\nexport type AILabelSize = 'small' | 'medium'\n\nexport interface AILabelProps {\n /**\n * What the agent proposes for the item: a change or addition (\"Suggested\"), or its removal\n * (\"Will be removed\"). The wording is fixed so it reads the same in every product (decision 0046).\n * @default 'suggested'\n */\n kind?: AILabelKind\n /**\n * Size on the label scale (decision 0018): small (20px) for dense lists, medium (24px) elsewhere.\n * @default 'medium'\n */\n size?: AILabelSize\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\nconst labels: Record<AILabelKind, string> = {\n suggested: 'Suggested',\n removal: 'Will be removed',\n}\n\nconst sizeConfig = {\n small: { font: typography.caption, gap: semantic.space[100], icon: 'xs' as const },\n medium: { font: typography.small, gap: semantic.space[200], icon: 'sm' as const },\n}\n\nconst StyledAILabel = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $size: AILabelSize }>`\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n min-height: ${({ $size }) => size.label[$size]};\n gap: ${({ $size }) => sizeConfig[$size].gap};\n font: ${({ $size }) => sizeConfig[$size].font};\n color: ${color.text.ai};\n white-space: nowrap;\n`\n\nconst StyledIcon = styled.span`\n display: inline-flex;\n color: ${color.icon.ai};\n`\n\n/**\n * AILabel marks content an agent has proposed but the user hasn't accepted (decision 0046): the AI\n * icon and a fixed label in the AI colour, never colour alone (decision 0043). It isn't a status\n * (use StatusLabel) or a category (use CategoryLabel), and it doesn't label AI features in general.\n *\n * @example\n * ```tsx\n * <AILabel /> // \"Suggested\"\n * <AILabel kind=\"removal\" /> // \"Will be removed\"\n * ```\n */\nexport const AILabel: React.FC<AILabelProps> = ({ kind = 'suggested', size: labelSize = 'medium', 'data-testid': dataTestId }) => (\n <StyledAILabel $size={labelSize} data-testid={dataTestId}>\n {/* Decorative: the label says it (decision 0028) */}\n <StyledIcon aria-hidden=\"true\">\n <Icon name=\"ai\" size={sizeConfig[labelSize].icon} iconColor=\"inherit\" />\n </StyledIcon>\n {labels[kind]}\n </StyledAILabel>\n)\n\nAILabel.displayName = 'AILabel'\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Stack } from '../../atoms/Stack'\nimport { Box } from '../../atoms/Box'\nimport { Icon, type IconName } from '../../atoms/Icon'\nimport { Typography } from '../../atoms/Typography'\nimport { MoneyDisplay } from '../../atoms/MoneyDisplay'\nimport { Button } from '../../atoms/Button'\nimport { Avatar } from '../../atoms/Avatar'\nimport tokens from '../../../lib/cssTokens'\n\n// Destructure tokens for cleaner access\nconst { semantic } = tokens\nconst { space } = semantic\n\nexport type AccountType = 'checking' | 'savings' | 'credit' | 'investment' | 'loan'\nexport type TrendDirection = 'up' | 'down' | 'neutral'\n\nexport interface AccountCardAction {\n label: string\n onClick: () => void\n icon?: IconName\n variant?: 'primary' | 'secondary' | 'naked'\n}\n\nexport interface AccountCardProps {\n /** Type of account */\n accountType: AccountType\n \n /** Display name of the account */\n accountName: string\n \n /** Account balance */\n balance: number\n \n /** Optional account number (last 4 digits) */\n accountNumber?: string\n \n /** Trend direction for balance change */\n trend?: TrendDirection\n \n /** Trend value (e.g., percentage or amount) */\n trendValue?: string\n \n /** Primary action button */\n action?: AccountCardAction\n \n /** Secondary action button */\n secondaryAction?: AccountCardAction\n \n /** Currency code */\n currency?: string\n \n /** Whether the card should be interactive (clickable) */\n onClick?: () => void\n \n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\nconst StyledBalanceSection = styled.div`\n margin-bottom: ${space[400]};\n`\n\nconst StyledTrendSection = styled.div<{ $color: string }>`\n display: flex;\n align-items: center;\n gap: ${space[100]};\n color: ${({ $color }) => $color};\n font: ${semantic.typography.small};\n`\n\nconst StyledActions = styled.div`\n display: flex;\n gap: ${space[200]};\n margin-top: auto;\n`\n\nconst StyledStackWrapper = styled.div`\n height: 100%;\n`\n\nconst StyledHeaderWrapper = styled.div`\n min-height: ${tokens.component.accountCard.header.minHeight};\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: ${space[0]};\n\n & > span {\n margin-top: calc(-1 * ${space[100]});\n }\n`\n\n// Map trend direction to icon and color\nconst trendToIcon: Record<TrendDirection, IconName> = {\n up: 'arrowUp',\n down: 'arrowDown',\n neutral: 'arrowRight'\n}\n\n// A trend is a differential indicator (decision 0045): the arrow and the signed value carry the\n// direction, and the role colour repeats it. Category colours carry no meaning, so they aren't used.\nconst trendToColor: Record<TrendDirection, string> = {\n up: semantic.color.text.success,\n down: semantic.color.text.danger,\n neutral: semantic.color.text.muted\n}\n\n/**\n * AccountCard component\n * \n * Displays account information in a card format with account type icon,\n * name, balance, optional trend indicator, and action buttons. Minimum\n * 300x200px with elevation and hover effects.\n * \n * Composes: Stack, Box, Avatar, Typography, MoneyDisplay, Button\n */\nexport const AccountCard: React.FC<AccountCardProps> = ({\n accountName,\n balance,\n accountNumber,\n trend,\n trendValue,\n action,\n secondaryAction,\n currency = 'AUD',\n onClick,\n 'data-testid': dataTestId\n}) => {\n const isClickable = !!onClick\n \n // Get trend icon and color\n const trendIcon = trend ? trendToIcon[trend] : undefined\n const trendColor = trend ? trendToColor[trend] : undefined\n \n const handleClick = () => {\n if (isClickable && onClick) {\n onClick()\n }\n }\n \n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (isClickable && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n onClick?.()\n }\n }\n \n return (\n <Box\n minWidth={tokens.component.accountCard.minWidth}\n p=\"lg\"\n bg=\"surface.raised\"\n border=\"default\"\n borderRadius=\"xl\"\n transition={`box-shadow ${semantic.motion.duration.moderate} ${semantic.motion.easing.decelerate}`}\n cursor={isClickable ? 'pointer' : 'default'}\n hoverShadow={isClickable ? 'floating' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n tabIndex={isClickable ? 0 : undefined}\n role={isClickable ? 'button' : 'article'}\n aria-label={isClickable ? `${accountName} account, balance ${balance}` : undefined}\n data-testid={dataTestId}\n >\n <StyledStackWrapper>\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Stack direction=\"row\" gap=\"md\">\n <Avatar\n name={accountName}\n size=\"lg\"\n data-testid={dataTestId ? `${dataTestId}-avatar` : undefined}\n />\n\n <Stack direction=\"column\" justifyContent=\"space-between\" alignItems=\"stretch\" gap=\"md\">\n <Stack direction=\"row\" gap=\"md\" alignItems=\"center\">\n <StyledHeaderWrapper>\n <Typography variant=\"h4\">\n {accountName}\n </Typography>\n {accountNumber && (\n <Typography variant=\"small\" color=\"subdued\">\n •••• {accountNumber}\n </Typography>\n )}\n </StyledHeaderWrapper>\n </Stack>\n \n <StyledBalanceSection>\n <Stack direction=\"row\" gap=\"sm\">\n <MoneyDisplay\n amount={balance}\n currency={currency}\n size=\"medium\"\n data-testid={dataTestId ? `${dataTestId}-balance` : undefined}\n />\n <Typography color=\"subdued\">\n Available\n </Typography>\n {trend && trendValue && (\n // A group rather than an image, so screen readers read the value as well as the direction\n <StyledTrendSection role=\"group\" aria-label={`Trend ${trend}`} $color={trendColor!}>\n <Icon name={trendIcon!} size=\"sm\" iconColor=\"inherit\" />\n <span>{trendValue}</span>\n </StyledTrendSection>\n )}\n </Stack>\n </StyledBalanceSection>\n </Stack>\n </Stack>\n \n {(action || secondaryAction) && (\n <Stack direction=\"row\" gap=\"sm\" justifyContent=\"flex-end\">\n {secondaryAction && (\n <Button\n onClick={(e) => {\n e.stopPropagation()\n secondaryAction.onClick()\n }}\n variant={secondaryAction.variant || 'secondary'}\n iconName={secondaryAction.icon}\n data-testid={dataTestId ? `${dataTestId}-secondary-action` : undefined}\n size=\"small\"\n >\n {secondaryAction.label}\n </Button>\n )}\n {action && (\n <Button\n onClick={(e) => {\n e.stopPropagation()\n action.onClick()\n }}\n variant={action.variant || 'primary'}\n iconName={action.icon}\n data-testid={dataTestId ? `${dataTestId}-action` : undefined}\n size=\"small\"\n >\n {action.label}\n </Button>\n )}\n </Stack>\n )}\n </Stack>\n </StyledStackWrapper>\n </Box>\n )\n}\n","import { createContext } from 'react'\n\nexport type ListSpacing = 'compact' | 'comfortable'\n\n/**\n * The spacing a List gives its items (#77). A ListItem without its own `spacing` uses it; outside\n * a List it's `comfortable`. Internal: not exported from the package.\n */\nexport const ListSpacingContext = createContext<ListSpacing>('comfortable')\n","import React, { useContext } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { Icon } from '../../atoms/Icon'\nimport { Typography } from '../../atoms/Typography'\nimport { interactiveRow, reducedMotion } from '../../../lib/styleUtils'\nimport { ListSpacingContext, type ListSpacing } from './ListContext'\n\nconst { semantic } = tokens\nconst { duration, easing } = semantic.motion\n\nexport interface ListItemProps {\n /**\n * Main text/content\n */\n primary: React.ReactNode\n \n /**\n * Secondary text (smaller, subdued color)\n */\n secondary?: React.ReactNode\n \n /**\n * Badge/chip component on the right\n */\n badge?: React.ReactNode\n \n /**\n * Left icon or avatar component\n */\n icon?: React.ReactNode\n \n /**\n * Can be expanded to show children content\n * @default false\n */\n expandable?: boolean\n \n /**\n * Expansion state (controlled)\n * @default false\n */\n expanded?: boolean\n \n /**\n * Called when expansion is toggled\n */\n onToggle?: () => void\n \n /**\n * Enable hover/click interactive states\n * @default false\n */\n interactive?: boolean\n \n /**\n * Click handler for interactive items\n */\n onClick?: () => void\n \n /**\n * Disabled state\n * @default false\n */\n disabled?: boolean\n \n /**\n * Selected/active state\n * @default false\n */\n selected?: boolean\n \n /**\n * Destructive/danger state (e.g., delete actions)\n * Displays text and icon in error color\n * @default false\n */\n destructive?: boolean\n \n /**\n * Density of this item. Defaults to the parent List's `spacing`, or `comfortable` outside a\n * List; set it to override the List for this item (#77).\n * @deprecated Set density on a region with `data-co-density` instead: rows follow it (P9,\n * decision 0051). `spacing` still sets the padding, but not the height, until it's removed in 4.0.\n */\n spacing?: ListSpacing\n \n /**\n * Expanded content (shown when expanded=true)\n */\n children?: React.ReactNode\n \n /**\n * Additional CSS class name\n */\n className?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n \n /**\n * Custom ARIA role (e.g., 'option' for combobox)\n * @default 'listitem'\n */\n role?: string\n \n /**\n * ARIA selected state (for role=\"option\")\n */\n 'aria-selected'?: boolean\n \n /**\n * Custom ID for ARIA references\n */\n id?: string\n \n /**\n * Custom tabIndex for focus management\n */\n tabIndex?: number\n \n /**\n * Keyboard event handler\n */\n onKeyDown?: (e: React.KeyboardEvent) => void\n}\n\nconst StyledListItem = styled.li.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $interactive: boolean\n $disabled: boolean\n $selected: boolean\n $destructive: boolean\n $spacing: 'compact' | 'comfortable'\n}>`\n display: flex;\n flex-direction: column;\n min-height: ${semantic.size.row.md};\n position: relative;\n \n /* Disable user selection for interactive items */\n ${({ $interactive }) => $interactive && 'user-select: none;'}\n \n /* Disabled state */\n ${({ $disabled }) => $disabled && `\n opacity: ${semantic.opacity.disabled};\n cursor: not-allowed;\n pointer-events: none;\n `}\n \n /* Destructive state - apply error color to text */\n ${({ $destructive, $disabled }) => $destructive && !$disabled && `\n color: ${semantic.color.text.danger};\n `}\n`\n\nconst StyledItemContent = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $interactive: boolean\n $disabled: boolean\n $selected: boolean\n $destructive: boolean\n $spacing: 'compact' | 'comfortable'\n}>`\n display: flex;\n align-items: flex-start;\n gap: ${semantic.space[300]};\n /* Insets, so the row's padding follows density with its height (decision 0051) */\n padding: ${({ $spacing }) =>\n $spacing === 'compact'\n ? `${semantic.space.inset.sm} ${semantic.space.inset.md}`\n : `${semantic.space.inset.md} ${semantic.space.inset.lg}`};\n border-radius: ${semantic.radius.sm};\n transition: background-color ${duration.fast} ${easing.decelerate}, color ${duration.fast} ${easing.decelerate};\n cursor: ${({ $interactive, $disabled }) => {\n if ($disabled) return 'not-allowed'\n if ($interactive) return 'pointer'\n return 'default'\n }};\n \n /* The shared row states (decision 0030). Only interactive, enabled rows respond to hover and\n press; the primary text is Typography, so the row colours it through a selector */\n ${({ $interactive, $disabled, $selected }) =>\n interactiveRow({\n selected: $selected,\n disabled: $disabled || !$interactive,\n textSelector: `${StyledTextContent} > :first-child`,\n })}\n \n /* Focus visible */\n &:focus-visible {\n outline: ${semantic.border.focus};\n outline-offset: ${semantic.border.focusOffset};\n }\n`\n\nconst StyledIconContainer = styled.div`\n display: flex;\n align-items: center;\n flex-shrink: 0;\n width: ${semantic.size.icon.lg};\n height: ${semantic.size.icon.lg};\n`\n\nconst StyledTextContent = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: ${semantic.space[100]};\n min-width: 0; /* Allow text truncation */\n`\n\nconst StyledRightContent = styled.div`\n display: flex;\n align-items: center;\n gap: ${semantic.space[200]};\n flex-shrink: 0;\n margin-left: auto;\n`\n\nconst StyledChevronIcon = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $expanded: boolean\n}>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${semantic.size.icon.lg};\n height: ${semantic.size.icon.lg};\n color: ${semantic.color.icon.muted};\n transition: transform ${duration.fast} ${easing.decelerate};\n transform: rotate(${({ $expanded }) => ($expanded ? '180deg' : '0deg')});\n pointer-events: none;\n\n ${reducedMotion} {\n transition: none;\n }\n`\n\nconst StyledExpandedContent = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $spacing: 'compact' | 'comfortable'\n $expanded: boolean\n}>`\n overflow: hidden;\n /* Padding collapses with the height, and visibility hides the content from\n keyboard and screen readers once the collapse finishes. */\n transition: max-height ${duration.moderate} ${easing.decelerate},\n padding ${duration.moderate} ${easing.decelerate},\n margin ${duration.moderate} ${easing.decelerate},\n opacity ${duration.moderate} ${easing.decelerate},\n visibility ${duration.moderate} ${easing.decelerate};\n max-height: ${({ $expanded }) => ($expanded ? '1000px' : '0')};\n opacity: ${({ $expanded }) => ($expanded ? '1' : '0')};\n visibility: ${({ $expanded }) => ($expanded ? 'visible' : 'hidden')};\n\n ${reducedMotion} {\n transition: opacity ${duration.moderate} ${easing.decelerate},\n visibility ${duration.moderate} ${easing.decelerate};\n }\n \n ${({ $expanded, $spacing }) => $expanded && `\n padding: ${\n $spacing === 'compact'\n ? `${semantic.space[200]} ${semantic.space[300]} ${semantic.space[200]} ${tokens.component.listItem.expandedIndent.compact}`\n : `${semantic.space[200]} ${semantic.space[400]} ${semantic.space[300]} ${tokens.component.listItem.expandedIndent.comfortable}`\n };\n background-color: ${semantic.surface.raised};\n border-radius: ${semantic.radius.sm};\n /* The row's own insets, so the panel lines up with the row in every density (0051) */\n margin: 0 ${\n $spacing === 'compact'\n ? semantic.space.inset.md\n : semantic.space.inset.lg\n } ${\n $spacing === 'compact'\n ? semantic.space.inset.sm\n : semantic.space.inset.md\n };\n `}\n`\n\nexport const ListItem = ({\n primary,\n secondary,\n badge,\n icon,\n expandable = false,\n expanded = false,\n onToggle,\n interactive = false,\n onClick,\n disabled = false,\n selected = false,\n destructive = false,\n spacing: spacingProp,\n children,\n className,\n 'data-testid': dataTestId,\n role: customRole,\n 'aria-selected': ariaSelected,\n id,\n tabIndex: customTabIndex,\n onKeyDown: customOnKeyDown,\n ...props\n}: ListItemProps) => {\n const listSpacing = useContext(ListSpacingContext)\n const spacing = spacingProp ?? listSpacing\n const isInteractive = interactive || expandable || customRole === 'option'\n const contentRole = customRole === 'option' ? undefined : (isInteractive ? 'button' : undefined)\n const ariaExpanded = expandable ? expanded : undefined\n const ariaDisabled = disabled ? true : undefined\n const ariaCurrent = selected ? 'true' : undefined\n \n const handleClick = () => {\n if (disabled) return\n \n if (expandable && onToggle) {\n onToggle()\n } else if (onClick) {\n onClick()\n }\n }\n \n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (customOnKeyDown) {\n customOnKeyDown(event)\n return\n }\n \n if (disabled) return\n \n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n handleClick()\n }\n }\n \n return (\n // The List's spacing is for its own items: reset it for this item's content, so components\n // built on ListItem (ActionSheet, even through its portal) and expanded content keep their own\n // density. A nested List provides its own spacing (#77)\n <ListSpacingContext.Provider value=\"comfortable\">\n <StyledListItem\n $interactive={isInteractive}\n $disabled={disabled}\n $selected={selected}\n $destructive={destructive}\n $spacing={spacing}\n className={className}\n data-testid={dataTestId}\n role={customRole || 'listitem'}\n id={id}\n aria-selected={ariaSelected}\n {...props}\n >\n <StyledItemContent\n $interactive={isInteractive}\n $disabled={disabled}\n $selected={selected}\n $destructive={destructive}\n $spacing={spacing}\n role={contentRole}\n aria-expanded={ariaExpanded}\n aria-disabled={ariaDisabled}\n aria-current={ariaCurrent}\n tabIndex={customTabIndex !== undefined ? customTabIndex : (isInteractive && !disabled ? 0 : undefined)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {icon && (\n <StyledIconContainer aria-hidden=\"true\">\n {icon}\n </StyledIconContainer>\n )}\n \n <StyledTextContent>\n <Typography variant=\"body\" color={destructive ? 'error' : 'default'}>\n {primary}\n </Typography>\n {secondary && (\n <Typography variant=\"small\" color=\"subdued\">\n {secondary}\n </Typography>\n )}\n </StyledTextContent>\n \n <StyledRightContent>\n {badge}\n {expandable && (\n <StyledChevronIcon $expanded={expanded} aria-hidden=\"true\">\n <Icon name=\"caretDown\" size=\"sm\" />\n </StyledChevronIcon>\n )}\n </StyledRightContent>\n </StyledItemContent>\n \n {expandable && children && (\n <StyledExpandedContent\n $spacing={spacing}\n $expanded={expanded}\n aria-hidden={!expanded}\n >\n {children}\n </StyledExpandedContent>\n )}\n </StyledListItem>\n </ListSpacingContext.Provider>\n )\n}\n\nListItem.displayName = 'ListItem'\n","import React, { \n useEffect, \n useRef, \n MouseEvent\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport styled, { keyframes } from 'styled-components'\nimport { Divider } from '../../atoms/Divider/Divider'\nimport { Icon } from '../../atoms/Icon/Icon'\nimport { type IconName } from '../../../types/icons'\nimport { Stack } from '../../atoms/Stack/Stack'\nimport { Typography } from '../../atoms/Typography/Typography'\nimport { ListItem } from '../List/ListItem'\nimport tokens from '@/lib/cssTokens'\nimport { exitAnimation, reducedMotion } from '../../../lib/styleUtils'\nimport { useInert, usePresence } from '../../../lib/usePresence'\n\nconst { \n semantic: { \n color, \n border, \n space, \n motion,\n elevation\n }\n} = tokens\n\n/**\n * Action item for the action sheet\n */\nexport interface Action {\n /**\n * Unique identifier\n */\n id: string\n \n /**\n * Display label\n */\n label: string\n \n /**\n * Optional icon\n */\n icon?: IconName\n \n /**\n * Whether this is a destructive action (shown in red)\n * @default false\n */\n destructive?: boolean\n \n /**\n * Whether this action is disabled\n * @default false\n */\n disabled?: boolean\n \n /**\n * Callback when action is selected\n */\n onSelect: () => void\n}\n\n/**\n * Props for the ActionSheet component\n */\nexport interface ActionSheetProps {\n /**\n * Whether the action sheet is open\n */\n isOpen: boolean\n \n /**\n * Callback when the action sheet should close\n */\n onClose: () => void\n \n /**\n * Title of the action sheet\n */\n title?: string\n \n /**\n * Optional description\n */\n description?: string\n \n /**\n * Array of actions\n */\n actions: Action[]\n \n /**\n * Whether to close on overlay click\n * @default true\n */\n closeOnOverlayClick?: boolean\n \n /**\n * Whether to close on Escape key\n * @default true\n */\n closeOnEscape?: boolean\n \n /**\n * Show close button in header\n * @default true\n */\n showCloseButton?: boolean\n \n /**\n * Test identifier\n */\n 'data-testid'?: string\n}\n\nconst slideUp = keyframes`\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n`\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`\n\nconst StyledOverlay = styled.div<{ $isExiting: boolean }>`\n position: fixed;\n inset: 0;\n background-color: ${tokens.semantic.surface.scrim};\n z-index: ${tokens.semantic.layer.modal};\n animation: ${fadeIn} ${motion.duration.moderate} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};\n`\n\nconst StyledActionSheet = styled.div<{ $isExiting: boolean }>`\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: ${tokens.semantic.surface.raised};\n border-top-left-radius: ${tokens.semantic.radius.lg};\n border-top-right-radius: ${tokens.semantic.radius.lg};\n box-shadow: ${elevation.overlay};\n max-height: 90vh;\n overflow-y: auto;\n z-index: ${tokens.semantic.layer.modal};\n animation: ${slideUp} ${motion.duration.slow} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};\n\n ${reducedMotion} {\n animation: ${fadeIn} ${motion.duration.slow} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};\n }\n\n`\n\nconst StyledHeader = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: ${space[400]} ${space[400]} ${space[300]};\n border-bottom: ${border.default};\n`\n\nconst StyledHeaderContent = styled.div`\n flex: 1;\n`\n\nconst StyledCloseButton = styled.button`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${space[200]};\n border: none;\n background: transparent;\n color: ${color.icon.muted};\n cursor: pointer;\n border-radius: ${tokens.semantic.radius.sm};\n transition: ${motion.transition.feedback};\n margin-left: ${space[200]};\n \n &:hover {\n color: ${color.icon.default};\n background-color: ${color.fill.muted};\n }\n \n &:focus-visible {\n outline: ${border.focus};\n outline-offset: ${border.focusOffset};\n }\n`\n\nconst StyledActionsList = styled.ul`\n padding: ${space[200]} ${space[300]};\n margin: 0;\n list-style: none;\n`\n\n/**\n * ActionSheet component for bottom sheet modals\n * \n * Displays a modal action sheet that slides up from the bottom,\n * providing a list of actions for the user to choose from.\n * Includes focus trapping, keyboard navigation, and accessibility features.\n * \n * @example\n * ```tsx\n * const [isOpen, setIsOpen] = useState(false)\n * \n * <ActionSheet\n * isOpen={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Choose an action\"\n * actions={[\n * {\n * id: 'edit',\n * label: 'Edit',\n * icon: 'edit',\n * onSelect: () => console.log('Edit')\n * },\n * {\n * id: 'delete',\n * label: 'Delete',\n * icon: 'trash',\n * destructive: true,\n * onSelect: () => console.log('Delete')\n * }\n * ]}\n * />\n * ```\n */\nexport const ActionSheet = ({\n isOpen,\n onClose,\n title,\n description,\n actions,\n closeOnOverlayClick = true,\n closeOnEscape = true,\n showCloseButton = true,\n 'data-testid': dataTestId\n}: ActionSheetProps) => {\n const sheetRef = useRef<HTMLDivElement>(null)\n const previousActiveElement = useRef<HTMLElement | null>(null)\n const { isPresent, isExiting } = usePresence(isOpen)\n useInert(sheetRef, isExiting)\n \n // Store the element that had focus when sheet opened\n useEffect(() => {\n if (isOpen) {\n previousActiveElement.current = document.activeElement as HTMLElement\n }\n }, [isOpen])\n \n // Focus management and escape key handling\n useEffect(() => {\n if (!isOpen) return\n \n const handleKeyDown = (e: globalThis.KeyboardEvent) => {\n if (e.key === 'Escape' && closeOnEscape) {\n e.preventDefault()\n onClose()\n }\n \n // Focus trap\n if (e.key === 'Tab' && sheetRef.current) {\n const focusableElements = sheetRef.current.querySelectorAll<HTMLElement>(\n 'button:not(:disabled), [href], input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex=\"-1\"])'\n )\n \n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n \n if (e.shiftKey && document.activeElement === firstElement) {\n e.preventDefault()\n lastElement?.focus()\n } else if (!e.shiftKey && document.activeElement === lastElement) {\n e.preventDefault()\n firstElement?.focus()\n }\n }\n }\n \n document.addEventListener('keydown', handleKeyDown)\n \n // Focus first focusable element (button or element with role=\"button\")\n const frame = requestAnimationFrame(() => {\n const firstFocusable = sheetRef.current?.querySelector<HTMLElement>(\n 'button:not(:disabled), [role=\"button\"][tabindex]:not([aria-disabled=\"true\"])'\n )\n firstFocusable?.focus()\n })\n \n // Prevent body scroll\n const originalOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n \n return () => {\n // A quick close cancels the pending focus, so it can't pull focus back into the exiting sheet\n cancelAnimationFrame(frame)\n document.removeEventListener('keydown', handleKeyDown)\n document.body.style.overflow = originalOverflow\n \n // Return focus to previous element\n if (previousActiveElement.current) {\n previousActiveElement.current.focus()\n }\n }\n }, [isOpen, onClose, closeOnEscape])\n \n const handleOverlayClick = (e: MouseEvent<HTMLDivElement>) => {\n // While exiting, the backdrop still catches clicks but doesn't close again\n if (!isExiting && closeOnOverlayClick && e.target === e.currentTarget) {\n onClose()\n }\n }\n \n const handleActionClick = (action: Action) => {\n if (!action.disabled) {\n action.onSelect()\n onClose()\n }\n }\n \n // Stays mounted while the exit fade runs, hidden from assistive technology\n if (!isPresent) return null\n \n // Find if there are any destructive actions to add divider\n const destructiveIndex = actions.findIndex(a => a.destructive)\n const hasDestructive = destructiveIndex >= 0\n \n return createPortal(\n <>\n <StyledOverlay onClick={handleOverlayClick} $isExiting={isExiting} />\n <StyledActionSheet\n ref={sheetRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden={isExiting || undefined}\n $isExiting={isExiting}\n aria-labelledby={title ? 'action-sheet-title' : undefined}\n aria-describedby={description ? 'action-sheet-description' : undefined}\n data-testid={dataTestId}\n >\n {(title || description || showCloseButton) && (\n <StyledHeader>\n <StyledHeaderContent>\n <Stack direction=\"column\" gap={description && title ? 'xs' : 'none'}>\n {title && (\n <div id=\"action-sheet-title\">\n <Typography variant=\"h3\">\n {title}\n </Typography>\n </div>\n )}\n {description && (\n <div id=\"action-sheet-description\">\n <Typography variant=\"body\" color=\"subdued\">\n {description}\n </Typography>\n </div>\n )}\n </Stack>\n </StyledHeaderContent>\n {showCloseButton && (\n <StyledCloseButton\n type=\"button\"\n onClick={onClose}\n aria-label=\"Close\"\n >\n <Icon name=\"close\" size=\"sm\" iconColor=\"subdued\" />\n </StyledCloseButton>\n )}\n </StyledHeader>\n )}\n \n <StyledActionsList>\n {actions.map((action, index) => (\n <React.Fragment key={action.id}>\n {hasDestructive && index === destructiveIndex && index > 0 && (\n <Divider size=\"small\" />\n )}\n <ListItem\n primary={action.label}\n icon={action.icon && (\n <Icon\n name={action.icon}\n size=\"md\"\n iconColor={\n action.disabled\n ? 'disabled'\n : action.destructive\n ? 'error'\n : 'default'\n }\n />\n )}\n interactive\n onClick={() => handleActionClick(action)}\n disabled={action.disabled}\n destructive={action.destructive}\n // Deprecated prop (0051), kept for this padding until 4.0 removes it\n spacing=\"compact\"\n />\n </React.Fragment>\n ))}\n </StyledActionsList>\n </StyledActionSheet>\n </>,\n document.body\n )\n}\n","export type AgentInputSubmitSource = 'text' | 'voice-final'\n\nexport type AgentInputVoiceErrorCode =\n | 'not-supported'\n | 'not-allowed'\n | 'no-speech'\n | 'audio-capture'\n | 'aborted'\n | 'unknown'\n\nexport interface AgentInputVoiceError {\n code: AgentInputVoiceErrorCode\n message: string\n}\n\nexport interface SpeechRecognitionAlternativeLike {\n transcript: string\n confidence: number\n}\n\nexport interface SpeechRecognitionResultLike {\n isFinal: boolean\n length: number\n [index: number]: SpeechRecognitionAlternativeLike\n}\n\nexport interface SpeechRecognitionResultListLike {\n length: number\n [index: number]: SpeechRecognitionResultLike\n}\n\nexport interface SpeechRecognitionEventLike {\n resultIndex: number\n results: SpeechRecognitionResultListLike\n}\n\nexport interface SpeechRecognitionErrorEventLike {\n error?: string\n message?: string\n}\n\nexport interface SpeechRecognitionLike {\n lang: string\n interimResults: boolean\n continuous: boolean\n onresult: ((event: SpeechRecognitionEventLike) => void) | null\n onerror: ((event: SpeechRecognitionErrorEventLike) => void) | null\n onend: (() => void) | null\n start: () => void\n stop: () => void\n abort: () => void\n}\n\nexport type SpeechRecognitionConstructorLike = new () => SpeechRecognitionLike\n\ntype BrowserWindowWithSpeech = Window & {\n SpeechRecognition?: SpeechRecognitionConstructorLike\n webkitSpeechRecognition?: SpeechRecognitionConstructorLike\n}\n\nexport function detectSpeechRecognitionConstructor(\n targetWindow?: Window\n): SpeechRecognitionConstructorLike | null {\n if (!targetWindow) return null\n\n const candidateWindow = targetWindow as BrowserWindowWithSpeech\n if (candidateWindow.SpeechRecognition) {\n return candidateWindow.SpeechRecognition\n }\n\n if (candidateWindow.webkitSpeechRecognition) {\n return candidateWindow.webkitSpeechRecognition\n }\n\n return null\n}\n\nexport function normalizeTranscript(input: string): string {\n return input.replace(/\\s+/g, ' ').trim()\n}\n\n/** Typed text: like a transcript, but line breaks are kept (spaces around them are dropped). */\nexport function normalizeMessage(input: string): string {\n return input\n .replace(/[^\\S\\n]+/g, ' ')\n .replace(/ ?\\n ?/g, '\\n')\n .trim()\n}\n\nexport function mapSpeechErrorCode(error?: string): AgentInputVoiceErrorCode {\n switch (error) {\n case 'not-allowed':\n case 'service-not-allowed':\n return 'not-allowed'\n case 'no-speech':\n return 'no-speech'\n case 'audio-capture':\n return 'audio-capture'\n case 'aborted':\n return 'aborted'\n default:\n return 'unknown'\n }\n}\n\nexport function defaultVoiceErrorMessage(code: AgentInputVoiceErrorCode): string {\n switch (code) {\n case 'not-supported':\n return 'Voice input is not supported in this browser. Use Chrome or Edge.'\n case 'not-allowed':\n return 'Microphone permission denied. Allow access and try again.'\n case 'no-speech':\n return 'No speech detected. Try again.'\n case 'audio-capture':\n return 'No microphone device detected. Check your microphone and try again.'\n case 'aborted':\n return 'Voice input was stopped.'\n default:\n return 'Voice input failed. Try again.'\n }\n}\n","export type AgentInputMachineState =\n | 'idle'\n | 'typing'\n | 'listening'\n | 'processingFinalTranscript'\n | 'submitting'\n | 'error'\n | 'disabled'\n\nexport type AgentInputMachineEvent =\n | { type: 'INPUT_CHANGE'; hasText: boolean }\n | { type: 'MIC_START' }\n | { type: 'MIC_STOP'; hasText: boolean }\n | { type: 'VOICE_INTERIM' }\n | { type: 'VOICE_FINAL' }\n | { type: 'VOICE_ERROR' }\n | { type: 'TIMEOUT_NO_SPEECH' }\n | { type: 'SUBMIT' }\n | { type: 'SUBMIT_SUCCESS'; hasText?: boolean }\n | { type: 'SUBMIT_ERROR' }\n | { type: 'RESET_ERROR'; hasText: boolean }\n\nconst textDrivenState = (hasText: boolean): AgentInputMachineState => (hasText ? 'typing' : 'idle')\n\nexport function agentInputStateTransition(\n currentState: AgentInputMachineState,\n event: AgentInputMachineEvent\n): AgentInputMachineState {\n if (currentState === 'disabled') {\n return 'disabled'\n }\n\n switch (event.type) {\n case 'INPUT_CHANGE':\n if (currentState === 'listening' || currentState === 'processingFinalTranscript' || currentState === 'submitting') {\n return currentState\n }\n return textDrivenState(event.hasText)\n\n case 'MIC_START':\n if (currentState === 'idle' || currentState === 'typing') {\n return 'listening'\n }\n return currentState\n\n case 'VOICE_INTERIM':\n if (currentState === 'listening') {\n return 'listening'\n }\n return currentState\n\n case 'VOICE_FINAL':\n if (currentState === 'listening') {\n return 'processingFinalTranscript'\n }\n return currentState\n\n case 'MIC_STOP':\n if (currentState === 'listening' || currentState === 'processingFinalTranscript') {\n return textDrivenState(event.hasText)\n }\n return currentState\n\n case 'SUBMIT':\n return 'submitting'\n\n case 'SUBMIT_SUCCESS':\n return 'idle'\n\n case 'SUBMIT_ERROR':\n return 'error'\n\n case 'VOICE_ERROR':\n case 'TIMEOUT_NO_SPEECH':\n return 'error'\n\n case 'RESET_ERROR':\n if (currentState === 'error') {\n return textDrivenState(event.hasText)\n }\n return currentState\n\n default:\n return currentState\n }\n}\n","import {\n ChangeEvent,\n ForwardedRef,\n KeyboardEvent,\n ReactNode,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useLayoutEffect,\n useEffect,\n useMemo,\n useRef,\n useState,\n useId,\n} from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport { Button } from '../../atoms/Button'\nimport { SuggestionChip } from '../../atoms/Chip'\nimport { IconButton } from '../../atoms/IconButton'\nimport { Typography } from '../../atoms/Typography'\nimport { reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\nimport { EXIT_DURATION_MS, useInert, usePresence } from '../../../lib/usePresence'\nimport tokens from '@/lib/cssTokens'\nimport {\n AgentInputSubmitSource,\n AgentInputVoiceError,\n AgentInputVoiceErrorCode,\n SpeechRecognitionLike,\n defaultVoiceErrorMessage,\n detectSpeechRecognitionConstructor,\n mapSpeechErrorCode,\n normalizeMessage,\n normalizeTranscript,\n} from './agentInputSpeech'\nimport { AgentInputMachineState, agentInputStateTransition } from './agentInputStateMachine'\n\nconst { semantic, component } = tokens\n\nconst DEFAULT_LISTENING_MESSAGE = 'Listening… speak now'\nconst DEFAULT_PROCESSING_MESSAGE = 'Finishing voice input…'\n// The counter appears from this share of maxLength\nconst COUNTER_THRESHOLD = 0.8\n\n// Layout effects warn during server rendering in React 18\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n\ninterface SubmitPayload {\n text: string\n source: AgentInputSubmitSource\n timestamp: string\n}\n\nexport interface AgentInputProps {\n value?: string\n defaultValue?: string\n onChange?: (value: string) => void\n\n /**\n * Called on Enter, Send, or a final voice transcript. When it resolves, the field clears if it\n * still holds the submitted text (a follow-up typed meanwhile is kept). When it rejects, the text stays.\n */\n onSubmit: (payload: SubmitPayload) => void | Promise<void>\n /** While submitting, turns Send into Stop and lets Escape stop. */\n onStop?: () => void\n\n /**\n * The review bar above the field, for an agent's proposal or an applied change (decision 0046).\n * Omit it when there's nothing to review or undo.\n */\n review?: AgentInputReview\n /**\n * Prompt starters or follow-ups, shown above the field while it's empty and no proposal is open.\n * At most three are shown. Picking one fills the field and focuses it; it never sends.\n */\n suggestions?: string[]\n /** Called with a suggestion's text when it's picked, after it fills the field */\n onSuggestionSelect?: (text: string) => void\n\n placeholder?: string\n /**\n * Soft character limit for the submitted text. Typing past it is allowed, but Send is disabled and\n * the counter and status line show the message is too long. A counter appears from 80% of the limit.\n */\n maxLength?: number\n disabled?: boolean\n isSubmitting?: boolean\n\n /**\n * Web Speech API voice capture, with a mic control in the field, where the browser supports it.\n * Off by default from 3.0 (#266): a product turns it on when it handles voice.\n * @default false\n */\n enableVoice?: boolean\n autoSubmitOnVoiceFinal?: boolean\n voiceLanguage?: string\n noSpeechTimeoutMs?: number\n\n onVoiceStart?: () => void\n onVoiceStop?: () => void\n onVoiceInterim?: (text: string) => void\n onVoiceFinal?: (text: string) => void\n onVoiceError?: (error: AgentInputVoiceError) => void\n\n /** Hint shown in the status line while idle or typing. Empty by default. */\n helperText?: string\n /** Overrides the status line in every non-error state. */\n statusMessage?: string\n /** Shown in the status line, styled and announced as an error, whenever it is set. */\n errorMessage?: string\n label?: string\n /**\n * Sticks the input to the bottom of its scroll container, on the sticky layer, over a band of page\n * background with room for the phone's home indicator. Render it as the last child of the\n * scrolling content.\n */\n docked?: boolean\n 'data-testid'?: string\n}\n\n/**\n * An agent's proposal waiting for review, or a change already applied (decision 0046). In the\n * proposal state the bar shows the summary with Accept and Discard; once applied, \"Changes applied\"\n * with Undo.\n */\nexport type AgentInputReview =\n | {\n state: 'proposal'\n /**\n * Identifies this proposal. A new id while a proposal is open announces it as a replacement\n * (\"Proposal updated.\"), even when the summary is the same (decision 0047).\n */\n id: string\n /** What the agent proposes. Say what changed, for example \"3 changes: Tuesday is now fish\" */\n summary: string\n onAccept: () => void\n onDiscard: () => void\n }\n | {\n state: 'applied'\n onUndo: () => void\n }\n\nexport interface AgentInputFocusOptions {\n /** Where to put the caret. Omit to keep the browser's default. */\n cursor?: 'start' | 'end' | 'all'\n}\n\n/** Imperative handle, for products that focus or clear the field from their own controls. */\nexport interface AgentInputHandle {\n focus: (options?: AgentInputFocusOptions) => void\n clear: () => void\n}\n\nconst rotateRing = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $docked: boolean }>`\n display: flex;\n flex-direction: column;\n gap: ${semantic.space[200]};\n width: 100%;\n\n ${({ $docked }) =>\n $docked &&\n css`\n position: sticky;\n bottom: 0;\n z-index: ${semantic.layer.sticky};\n /* The band hides content scrolling past the field and status line (decisions 0006, 0031) */\n background-color: ${semantic.surface.base};\n padding-top: ${semantic.space[300]};\n /* Clears the home indicator; zero unless the page sets viewport-fit=cover */\n padding-bottom: env(safe-area-inset-bottom, 0px);\n `}\n`\n\nconst ControlsRow = styled.div`\n width: 100%;\n`\n\nconst InputShell = styled.div`\n display: flex;\n /* Actions sit beside the last line as the field grows */\n align-items: flex-end;\n gap: ${semantic.space[200]};\n width: 100%;\n padding: ${semantic.space[100]} ${semantic.space[200]} ${semantic.space[100]} ${semantic.space.inset.lg};\n background-color: ${component.input.default.backgroundColor};\n border: ${component.input.default.borderWidth} solid ${component.input.default.borderColor};\n border-radius: ${semantic.radius['3xl']};\n box-shadow: ${semantic.elevation.raised};\n transition: border-color ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}, outline ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard};\n\n &:focus-within {\n border-color: ${component.input.focus.borderColor};\n outline: ${component.input.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n }\n\n &[data-disabled='true'] {\n background-color: ${component.input.disabled.backgroundColor};\n border-color: ${component.input.disabled.borderColor};\n }\n`\n\n// One row is a control-height field; it grows with its content to six rows, then scrolls.\n// The height is set from scrollHeight in resizeField; 1lh is the body line height.\nconst Input = styled.textarea`\n display: block;\n flex: 1;\n min-width: 0;\n box-sizing: border-box;\n height: ${semantic.size.control.lg};\n min-height: ${semantic.size.control.lg};\n max-height: calc(5lh + ${semantic.size.control.lg});\n margin: 0;\n padding: calc((${semantic.size.control.lg} - 1lh) / 2) 0;\n resize: none;\n overflow-y: hidden;\n border: none;\n background: transparent;\n font: ${semantic.typography.body};\n color: ${semantic.color.text.default};\n outline: none;\n\n &::placeholder {\n color: ${component.input.placeholder.textColor};\n /* Firefox fades placeholders to 0.54 by default, which would undo the 4.5:1 contrast */\n opacity: 1;\n }\n\n &:disabled {\n color: ${semantic.color.text.disabled};\n cursor: not-allowed;\n }\n`\n\nconst InputActions = styled.div`\n display: inline-flex;\n align-items: center;\n gap: ${semantic.space[200]};\n /* Centres the buttons on a one-row field, and keeps them level with the last line as it grows */\n padding-bottom: calc((${semantic.size.control.lg} - ${semantic.size.control.md}) / 2);\n`\n\nconst CircularActionIconButton = styled(IconButton)`\n border-radius: ${semantic.radius.full};\n`\n\nconst InputWrapper = styled.div`\n flex: 1;\n min-width: 0;\n`\n\nconst MicButtonWrapper = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isListening: boolean; $reducedMotion: boolean }>`\n position: relative;\n display: inline-flex;\n border-radius: ${semantic.radius.full};\n\n & > button {\n position: relative;\n z-index: 1;\n }\n`\n\n// Masks read only alpha, so the opaque stop is a mask value, not a colour (decision 0010).\n// eslint-disable-next-line no-restricted-syntax\nconst ringMask = css`radial-gradient(farthest-side, transparent calc(100% - var(--ring-thickness)), #000 calc(100% - var(--ring-thickness)))`\n\nconst MicListeningRing = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $reducedMotion: boolean }>`\n --ring-thickness: ${semantic.border.width.thick};\n position: absolute;\n inset: calc(-1 * ${semantic.space[100]} - ${semantic.border.focusOffset});\n border-radius: ${semantic.radius.full};\n pointer-events: none;\n z-index: 0;\n background: conic-gradient(\n from 0deg,\n ${semantic.color.fill['accent-muted']} 0deg,\n ${semantic.color.fill.accent} 110deg,\n ${semantic.color.fill['accent-hover']} 210deg,\n ${semantic.color.fill.accent} 300deg,\n ${semantic.color.fill['accent-muted']} 360deg\n );\n mask: ${ringMask};\n -webkit-mask: ${ringMask};\n\n ${({ $reducedMotion }) =>\n !$reducedMotion &&\n css`\n animation: ${rotateRing} 1300ms linear infinite;\n `}\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n`\n\n// Maximum suggestions shown (decision 0046, #280)\nconst MAX_SUGGESTIONS = 3\n\nconst regionEnter = keyframes`\n from {\n opacity: 0;\n transform: translateY(${semantic.motion.distance.sm});\n }\n`\n\nconst regionFadeIn = keyframes`\n from {\n opacity: 0;\n }\n`\n\n// Leaving content fades, then its space closes, as with Alert's dismiss (decision 0015). A grid\n// row from 1fr to 0fr collapses to the content's own height without measuring it.\nconst regionFadeThenCollapse = keyframes`\n 0%, 50% {\n grid-template-rows: 1fr;\n }\n 0% {\n opacity: 1;\n }\n 50%, 100% {\n opacity: 0;\n }\n 100% {\n grid-template-rows: 0fr;\n }\n`\n\nconst regionFadeOut = keyframes`\n to {\n opacity: 0;\n }\n`\n\n// One part of the region above the field: the review bar or the suggestions\nconst RegionItem = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $exiting: boolean; $reducedExit: boolean }>`\n display: grid;\n grid-template-rows: 1fr;\n animation: ${regionEnter} ${semantic.motion.duration.moderate} ${semantic.motion.easing.decelerate};\n\n ${reducedMotion} {\n animation-name: ${regionFadeIn};\n }\n\n ${({ $exiting, $reducedExit }) =>\n $exiting &&\n css`\n pointer-events: none;\n animation: ${$reducedExit\n ? css`${regionFadeOut} ${semantic.motion.duration.fast} ${semantic.motion.easing.accelerate} forwards`\n : css`${regionFadeThenCollapse} calc(2 * ${semantic.motion.duration.fast}) ${semantic.motion.easing.accelerate} forwards`};\n `}\n`\n\n// Clips while the row collapses. Its bottom padding is the space to the next part, so it closes too.\nconst RegionItemContent = styled.div`\n min-height: 0;\n overflow: hidden;\n padding-bottom: ${semantic.space[200]};\n padding-left: ${semantic.space[500]};\n`\n\n// The summary first, then the actions, left-aligned after it; they wrap below on narrow screens (0021)\nconst ReviewBar = styled.div`\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n column-gap: ${semantic.space[300]};\n row-gap: ${semantic.space[200]};\n`\n\nconst ReviewActions = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: ${semantic.space[200]};\n`\n\nconst SuggestionList = styled.ul`\n display: flex;\n flex-wrap: wrap;\n gap: ${semantic.space[200]};\n margin: 0;\n padding: 0;\n list-style: none;\n\n & > li {\n max-width: 100%;\n }\n`\n\nconst StatusRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${semantic.space[300]};\n min-height: ${semantic.space[600]};\n`\n\nconst StatusText = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isError: boolean }>`\n padding-left: ${semantic.space[500]};\n`\n\nconst StatusAnnouncement = styled.div``\n\nconst StatusEnd = styled.div`\n display: inline-flex;\n align-items: center;\n gap: ${semantic.space[300]};\n`\n\nconst VisuallyHidden = styled.span`\n ${visuallyHidden}\n`\n\nconst MeterContainer = styled.div`\n display: inline-flex;\n align-items: flex-end;\n gap: ${semantic.space[100]};\n height: ${semantic.space[400]};\n`\n\nconst MeterBar = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $height: number }>`\n width: ${semantic.space[100]};\n border-radius: ${semantic.radius.xs};\n background-color: ${semantic.color.fill.accent};\n height: ${({ $height }) => `${$height * 100}%`};\n transition: height ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate};\n`\n\nconst VisuallyHiddenLabel = styled.label`\n ${visuallyHidden}\n`\n\nfunction getInitialState(hasText: boolean): AgentInputMachineState {\n return hasText ? 'typing' : 'idle'\n}\n\nfunction createMeterBars(level: number): number[] {\n const clampedLevel = Math.max(0, Math.min(level, 1))\n return [\n 0.25 + clampedLevel * 0.75,\n 0.2 + clampedLevel * 0.6,\n 0.3 + clampedLevel * 0.7,\n 0.2 + clampedLevel * 0.5,\n ]\n}\n\n// Declared separately so the react-hooks lint rules analyse it (they skip functions inline in forwardRef)\n// Development builds warn about props that break the pattern. Bundlers replace process.env.NODE_ENV\n// with a literal; without a bundler, a browser has no process, so reading it throws.\nfunction readIsProduction(): boolean {\n try {\n return process.env.NODE_ENV === 'production'\n } catch {\n return false\n }\n}\nconst isProduction = readIsProduction()\n\n// A part of the region above the field. It stays mounted while it fades out and its space closes.\nfunction RegionPart({ show, reducedExit, children }: { show: boolean; reducedExit: boolean; children: ReactNode }) {\n const { isPresent, isExiting } = usePresence(show, reducedExit ? EXIT_DURATION_MS : EXIT_DURATION_MS * 2)\n const ref = useRef<HTMLDivElement>(null)\n // Leaving controls drop out of the tab order and can't be activated\n useInert(ref, isExiting)\n\n if (!isPresent) return null\n\n return (\n <RegionItem ref={ref} $exiting={isExiting} $reducedExit={reducedExit} aria-hidden={isExiting || undefined}>\n <RegionItemContent>{children}</RegionItemContent>\n </RegionItem>\n )\n}\n\nfunction AgentInputWithRef({\n value,\n defaultValue = '',\n onChange,\n onSubmit,\n onStop,\n review,\n suggestions,\n onSuggestionSelect,\n placeholder = 'Ask a question',\n maxLength,\n disabled = false,\n isSubmitting,\n enableVoice = false,\n autoSubmitOnVoiceFinal = true,\n voiceLanguage = 'en-AU',\n noSpeechTimeoutMs = 8000,\n onVoiceStart,\n onVoiceStop,\n onVoiceInterim,\n onVoiceFinal,\n onVoiceError,\n helperText = '',\n statusMessage,\n errorMessage,\n label = 'Agent input',\n docked = false,\n 'data-testid': dataTestId,\n}: AgentInputProps, ref: ForwardedRef<AgentInputHandle>) {\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = useState(defaultValue)\n const [machineState, setMachineState] = useState<AgentInputMachineState>(\n getInitialState(normalizeTranscript(value ?? defaultValue).length > 0)\n )\n const [interimTranscript, setInterimTranscript] = useState('')\n const [internalSubmitting, setInternalSubmitting] = useState(false)\n const [internalErrorMessage, setInternalErrorMessage] = useState<string | undefined>(undefined)\n const [voiceSupported, setVoiceSupported] = useState(false)\n const [prefersReducedMotion, setPrefersReducedMotion] = useState(false)\n const [meterLevel, setMeterLevel] = useState(0)\n\n const recognitionRef = useRef<SpeechRecognitionLike | null>(null)\n const noSpeechTimeoutRef = useRef<number | null>(null)\n const isStoppingRef = useRef(false)\n const hasSubmittedVoiceFinalRef = useRef(false)\n const audioStreamRef = useRef<MediaStream | null>(null)\n const audioContextRef = useRef<AudioContext | null>(null)\n const meterRafRef = useRef<number | null>(null)\n const inputRef = useRef<HTMLTextAreaElement>(null)\n const inputId = useId()\n const statusId = `${inputId}-status`\n const counterId = `${inputId}-counter`\n\n const currentValue = isControlled ? value ?? '' : internalValue\n // Read after onSubmit settles, when the closure's value may be stale\n const currentValueRef = useRef(currentValue)\n useEffect(() => {\n currentValueRef.current = currentValue\n }, [currentValue])\n const hasText = normalizeTranscript(currentValue).length > 0\n const messageLength = normalizeMessage(currentValue).length\n const isOverLimit = maxLength !== undefined && messageLength > maxLength\n const effectiveSubmitting = isSubmitting ?? internalSubmitting\n const effectiveState = disabled ? 'disabled' : machineState\n const isListening = effectiveState === 'listening'\n const hasVoice = enableVoice && voiceSupported\n\n const updateMachineState = useCallback((event: Parameters<typeof agentInputStateTransition>[1]) => {\n setMachineState((previousState) => agentInputStateTransition(previousState, event))\n }, [])\n\n const updateValue = useCallback(\n (nextValue: string) => {\n if (!isControlled) {\n setInternalValue(nextValue)\n }\n onChange?.(nextValue)\n },\n [isControlled, onChange]\n )\n\n const clearNoSpeechTimeout = useCallback(() => {\n if (noSpeechTimeoutRef.current) {\n window.clearTimeout(noSpeechTimeoutRef.current)\n noSpeechTimeoutRef.current = null\n }\n }, [])\n\n const stopMeter = useCallback(async () => {\n if (meterRafRef.current) {\n window.cancelAnimationFrame(meterRafRef.current)\n meterRafRef.current = null\n }\n\n if (audioStreamRef.current) {\n audioStreamRef.current.getTracks().forEach((track) => track.stop())\n audioStreamRef.current = null\n }\n\n if (audioContextRef.current) {\n await audioContextRef.current.close()\n audioContextRef.current = null\n }\n\n setMeterLevel(0)\n }, [])\n\n const startMeter = useCallback(async () => {\n if (prefersReducedMotion || !navigator?.mediaDevices?.getUserMedia) {\n return\n }\n\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true })\n const audioContext = new AudioContext()\n const analyser = audioContext.createAnalyser()\n analyser.fftSize = 256\n\n const source = audioContext.createMediaStreamSource(stream)\n source.connect(analyser)\n\n const data = new Uint8Array(analyser.frequencyBinCount)\n\n audioStreamRef.current = stream\n audioContextRef.current = audioContext\n\n const loop = () => {\n analyser.getByteTimeDomainData(data)\n let sum = 0\n for (let index = 0; index < data.length; index += 1) {\n const centered = data[index] / 128 - 1\n sum += centered * centered\n }\n\n const rms = Math.sqrt(sum / data.length)\n const nextLevel = Math.max(0.05, Math.min(rms * 3, 1))\n setMeterLevel(nextLevel)\n meterRafRef.current = window.requestAnimationFrame(loop)\n }\n\n meterRafRef.current = window.requestAnimationFrame(loop)\n } catch {\n setMeterLevel(0)\n }\n }, [prefersReducedMotion])\n\n const emitVoiceError = useCallback(\n (code: AgentInputVoiceErrorCode, fallback?: string) => {\n const message = fallback ?? defaultVoiceErrorMessage(code)\n setInternalErrorMessage(message)\n updateMachineState({ type: 'VOICE_ERROR' })\n onVoiceError?.({ code, message })\n },\n [onVoiceError, updateMachineState]\n )\n\n const submitPayload = useCallback(\n async (rawText: string, source: AgentInputSubmitSource) => {\n const text = source === 'text' ? normalizeMessage(rawText) : normalizeTranscript(rawText)\n if (!text || disabled || effectiveSubmitting) {\n return\n }\n\n if (maxLength !== undefined && text.length > maxLength) {\n // A long transcript goes into the field to be shortened, unless the user has typed since\n if (source === 'voice-final' && !normalizeMessage(currentValueRef.current)) {\n updateValue(text)\n }\n return\n }\n\n updateMachineState({ type: 'SUBMIT' })\n setInternalErrorMessage(undefined)\n if (isSubmitting === undefined) {\n setInternalSubmitting(true)\n }\n\n try {\n await onSubmit({\n text,\n source,\n timestamp: new Date().toISOString(),\n })\n\n updateMachineState({ type: 'SUBMIT_SUCCESS' })\n setInterimTranscript('')\n // Keep a follow-up typed while submitting\n if (normalizeMessage(currentValueRef.current) === text) {\n updateValue('')\n }\n } catch {\n updateMachineState({ type: 'SUBMIT_ERROR' })\n // Restore the transcript unless the user has typed something since\n if (source === 'voice-final' && !normalizeMessage(currentValueRef.current)) {\n updateValue(text)\n }\n setInternalErrorMessage('Submission failed. Please try again.')\n } finally {\n if (isSubmitting === undefined) {\n setInternalSubmitting(false)\n }\n }\n },\n [disabled, effectiveSubmitting, isSubmitting, maxLength, onSubmit, updateMachineState, updateValue]\n )\n\n const stopListening = useCallback(\n async (emitStopEvent: boolean, preserveState: boolean = false) => {\n isStoppingRef.current = true\n clearNoSpeechTimeout()\n setInterimTranscript('')\n\n if (recognitionRef.current) {\n try {\n recognitionRef.current.stop()\n } catch {\n // no-op\n }\n }\n\n await stopMeter()\n if (emitStopEvent) {\n onVoiceStop?.()\n }\n\n if (!preserveState) {\n updateMachineState({ type: 'MIC_STOP', hasText })\n }\n isStoppingRef.current = false\n },\n [clearNoSpeechTimeout, hasText, onVoiceStop, stopMeter, updateMachineState]\n )\n\n const onNoSpeechTimeout = useCallback(async () => {\n clearNoSpeechTimeout()\n updateMachineState({ type: 'TIMEOUT_NO_SPEECH' })\n const message = defaultVoiceErrorMessage('no-speech')\n setInternalErrorMessage(message)\n onVoiceError?.({ code: 'no-speech', message })\n await stopListening(true, true)\n }, [clearNoSpeechTimeout, onVoiceError, stopListening, updateMachineState])\n\n const beginListening = useCallback(async () => {\n if (!recognitionRef.current || disabled || effectiveSubmitting) {\n return\n }\n\n setInternalErrorMessage(undefined)\n hasSubmittedVoiceFinalRef.current = false\n\n try {\n recognitionRef.current.start()\n updateMachineState({ type: 'MIC_START' })\n onVoiceStart?.()\n clearNoSpeechTimeout()\n noSpeechTimeoutRef.current = window.setTimeout(onNoSpeechTimeout, noSpeechTimeoutMs)\n await startMeter()\n } catch {\n emitVoiceError('unknown')\n }\n }, [\n clearNoSpeechTimeout,\n disabled,\n effectiveSubmitting,\n emitVoiceError,\n noSpeechTimeoutMs,\n onNoSpeechTimeout,\n onVoiceStart,\n startMeter,\n updateMachineState,\n ])\n\n useEffect(() => {\n const constructor = detectSpeechRecognitionConstructor(window)\n setVoiceSupported(Boolean(constructor))\n\n if (!enableVoice || !constructor) {\n return\n }\n\n const recognition = new constructor()\n recognition.lang = voiceLanguage\n recognition.interimResults = true\n recognition.continuous = false\n\n recognition.onresult = async (event) => {\n clearNoSpeechTimeout()\n noSpeechTimeoutRef.current = window.setTimeout(onNoSpeechTimeout, noSpeechTimeoutMs)\n\n let interim = ''\n let finalText = ''\n\n for (let index = event.resultIndex; index < event.results.length; index += 1) {\n const result = event.results[index]\n if (!result || !result[0]) continue\n\n if (result.isFinal) {\n finalText += ` ${result[0].transcript}`\n } else {\n interim += ` ${result[0].transcript}`\n }\n }\n\n const normalizedInterim = normalizeTranscript(interim)\n setInterimTranscript(normalizedInterim)\n updateMachineState({ type: 'VOICE_INTERIM' })\n\n if (normalizedInterim) {\n onVoiceInterim?.(normalizedInterim)\n }\n\n const normalizedFinal = normalizeTranscript(finalText)\n if (!normalizedFinal || hasSubmittedVoiceFinalRef.current) {\n return\n }\n\n hasSubmittedVoiceFinalRef.current = true\n updateMachineState({ type: 'VOICE_FINAL' })\n setInterimTranscript('')\n onVoiceFinal?.(normalizedFinal)\n\n await stopMeter()\n\n if (autoSubmitOnVoiceFinal) {\n await submitPayload(normalizedFinal, 'voice-final')\n } else {\n updateValue(normalizedFinal)\n updateMachineState({ type: 'MIC_STOP', hasText: true })\n }\n }\n\n recognition.onerror = async (event) => {\n const mappedCode = mapSpeechErrorCode(event.error)\n emitVoiceError(mappedCode)\n await stopListening(true, true)\n }\n\n recognition.onend = async () => {\n if (isStoppingRef.current) return\n clearNoSpeechTimeout()\n await stopMeter()\n if (!hasSubmittedVoiceFinalRef.current) {\n updateMachineState({ type: 'MIC_STOP', hasText })\n }\n }\n\n recognitionRef.current = recognition\n\n return () => {\n clearNoSpeechTimeout()\n recognitionRef.current?.abort()\n recognitionRef.current = null\n stopMeter()\n }\n }, [\n autoSubmitOnVoiceFinal,\n clearNoSpeechTimeout,\n emitVoiceError,\n enableVoice,\n hasText,\n noSpeechTimeoutMs,\n onNoSpeechTimeout,\n onVoiceFinal,\n onVoiceInterim,\n stopListening,\n stopMeter,\n submitPayload,\n updateMachineState,\n updateValue,\n voiceLanguage,\n ])\n\n const focusField = useCallback((cursor?: AgentInputFocusOptions['cursor']) => {\n const input = inputRef.current\n if (!input) return\n input.focus()\n if (!cursor) return\n\n const placeCursor = () => {\n if (cursor === 'all') {\n input.select()\n return\n }\n const position = cursor === 'start' ? 0 : input.value.length\n input.setSelectionRange(position, position)\n }\n placeCursor()\n // Again after the render a prefill in the same handler triggers, so 'end' lands after the new text\n window.setTimeout(placeCursor, 0)\n }, [])\n\n useImperativeHandle(\n ref,\n () => ({\n focus: (options) => focusField(options?.cursor),\n clear: () => {\n setInterimTranscript('')\n updateValue('')\n },\n }),\n [focusField, updateValue]\n )\n\n // The region above the field (decision 0046). The last review and suggestions shown are kept, so\n // they can fade out after the product removes them.\n const [shownReview, setShownReview] = useState(review)\n const [lastReviewAction, setLastReviewAction] = useState<'discarded' | 'undone' | null>(null)\n if (review && review !== shownReview) {\n setShownReview(review)\n // A new proposal or change replaces what the last Discard or Undo announced\n if (lastReviewAction) setLastReviewAction(null)\n }\n\n // A proposal replacing an open one is announced as an update (decision 0047). Consecutive\n // replacements alternate a trailing no-break space, so the live region's text changes each time\n // even when the summary doesn't; screen readers don't speak it.\n const openProposalId = review?.state === 'proposal' ? review.id : null\n const [announcedProposalId, setAnnouncedProposalId] = useState(openProposalId)\n const [replacementCount, setReplacementCount] = useState(0)\n if (openProposalId !== announcedProposalId) {\n setAnnouncedProposalId(openProposalId)\n setReplacementCount(openProposalId !== null && announcedProposalId !== null ? replacementCount + 1 : 0)\n }\n\n const cappedSuggestions = useMemo(() => (suggestions ?? []).slice(0, MAX_SUGGESTIONS), [suggestions])\n const showSuggestions = cappedSuggestions.length > 0 && !hasText && review?.state !== 'proposal'\n const [shownSuggestions, setShownSuggestions] = useState(cappedSuggestions)\n if (showSuggestions && cappedSuggestions !== shownSuggestions) {\n setShownSuggestions(cappedSuggestions)\n }\n\n const suggestionCount = suggestions?.length ?? 0\n useEffect(() => {\n if (!isProduction && suggestionCount > MAX_SUGGESTIONS) {\n console.warn(\n `AgentInput shows at most ${MAX_SUGGESTIONS} suggestions (decision 0046); ${suggestionCount} were passed, so the rest are hidden.`\n )\n }\n }, [suggestionCount])\n\n const reviewAnnouncement = review\n ? review.state === 'proposal'\n ? `${replacementCount > 0 ? 'Proposal updated. ' : ''}${review.summary}. Accept or discard.${\n replacementCount > 0 && replacementCount % 2 === 0 ? '\\u00A0' : ''\n }`\n : 'Changes applied. Undo available.'\n : lastReviewAction === 'discarded'\n ? 'Suggestion discarded.'\n : lastReviewAction === 'undone'\n ? 'Changes undone.'\n : ''\n\n const onReviewDiscard = (onDiscard: () => void) => {\n setLastReviewAction('discarded')\n onDiscard()\n // The bar is leaving, so focus goes to the field rather than being lost\n focusField()\n }\n\n const onReviewUndo = (onUndo: () => void) => {\n setLastReviewAction('undone')\n onUndo()\n focusField()\n }\n\n const onPickSuggestion = (text: string) => {\n updateValue(text)\n onSuggestionSelect?.(text)\n // Fills, never sends: the user reviews the text in the field first\n focusField('end')\n }\n\n useEffect(() => {\n const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)')\n const sync = () => setPrefersReducedMotion(mediaQuery.matches)\n sync()\n mediaQuery.addEventListener('change', sync)\n return () => mediaQuery.removeEventListener('change', sync)\n }, [])\n\n useEffect(() => {\n if (effectiveState === 'error' && !internalErrorMessage && !errorMessage) {\n updateMachineState({ type: 'RESET_ERROR', hasText })\n }\n }, [effectiveState, errorMessage, hasText, internalErrorMessage, updateMachineState])\n\n useEffect(() => {\n if (!disabled && (machineState === 'idle' || machineState === 'typing')) {\n updateMachineState({ type: 'INPUT_CHANGE', hasText })\n }\n }, [disabled, hasText, machineState, updateMachineState])\n\n const displayedValue = useMemo(() => {\n if (!interimTranscript) {\n return currentValue\n }\n\n return normalizeMessage([currentValue, interimTranscript].filter(Boolean).join(' '))\n }, [currentValue, interimTranscript])\n\n const lastFieldWidthRef = useRef(0)\n\n const resizeField = useCallback(() => {\n const field = inputRef.current\n // Hidden (for example in a closed sheet): measure when it's shown, via the observer below\n if (!field || field.clientWidth === 0) return\n lastFieldWidthRef.current = field.clientWidth\n // Collapsing the field to measure it shrinks the page for a moment; some engines clamp a page\n // scrolled to the bottom when that happens, so restore its scroll position\n const { scrollX, scrollY } = window\n field.style.height = 'auto'\n field.style.height = `${field.scrollHeight}px`\n if (window.scrollY !== scrollY) window.scrollTo(scrollX, scrollY)\n // Scroll only once max-height (six rows) clips the content\n field.style.overflowY = field.scrollHeight > field.clientHeight ? 'auto' : 'hidden'\n }, [])\n\n useIsomorphicLayoutEffect(() => {\n resizeField()\n }, [displayedValue, resizeField])\n\n // Text rewraps when the field's width changes (layout, or being shown), not only the window's\n useEffect(() => {\n const field = inputRef.current\n if (!field || typeof ResizeObserver === 'undefined') return\n const observer = new ResizeObserver(() => {\n // Its own height changes trigger this too; only a width change can rewrap the text\n if (field.clientWidth !== lastFieldWidthRef.current) resizeField()\n })\n observer.observe(field)\n return () => observer.disconnect()\n }, [resizeField])\n\n const onTextChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n updateValue(event.target.value)\n if (effectiveState === 'error') {\n setInternalErrorMessage(undefined)\n updateMachineState({ type: 'RESET_ERROR', hasText: normalizeTranscript(event.target.value).length > 0 })\n }\n }\n\n const onInputKeyDown = async (event: KeyboardEvent<HTMLTextAreaElement>) => {\n const isComposing = event.nativeEvent.isComposing || event.keyCode === 229\n\n // Escape during an IME composition cancels the composition, not the request\n if (event.key === 'Escape' && onStop && effectiveSubmitting && !isComposing) {\n event.preventDefault()\n onStop()\n return\n }\n\n if (event.key === 'Escape' && isListening) {\n event.preventDefault()\n await stopListening(true)\n return\n }\n\n // Shift+Enter adds a line. Enter also confirms an IME composition (Japanese, Chinese, Korean);\n // only submit once it ends\n if (event.key === 'Enter' && !event.shiftKey && !isComposing) {\n event.preventDefault()\n await submitPayload(currentValue, 'text')\n }\n }\n\n const onMicToggle = async () => {\n if (!hasVoice) return\n\n if (isListening) {\n await stopListening(true)\n return\n }\n\n await beginListening()\n }\n\n const statusByState: Record<AgentInputMachineState, string> = {\n idle: statusMessage || helperText,\n typing: statusMessage || helperText,\n listening: statusMessage || DEFAULT_LISTENING_MESSAGE,\n processingFinalTranscript: statusMessage || DEFAULT_PROCESSING_MESSAGE,\n submitting: statusMessage || 'Submitting…',\n error: errorMessage || internalErrorMessage || 'Voice input failed. Try again.',\n disabled: statusMessage || helperText,\n }\n\n const overLimitMessage =\n isOverLimit && maxLength !== undefined\n ? `Over the ${maxLength}-character limit. Shorten your message to send.`\n : undefined\n\n // A product-set error shows in any state. Unsupported voice hides the mic without a message.\n const resolvedStatus = errorMessage || overLimitMessage || statusByState[effectiveState]\n const isStatusError = Boolean(errorMessage) || isOverLimit || effectiveState === 'error'\n const meterBars = createMeterBars(meterLevel)\n const showStop = Boolean(onStop) && effectiveSubmitting\n const sendDisabled = disabled || effectiveSubmitting || isOverLimit || messageLength === 0\n const showCounter = maxLength !== undefined && messageLength >= maxLength * COUNTER_THRESHOLD\n // Announced once when the limit is reached; going over is announced by the status line\n const limitAnnouncement =\n maxLength !== undefined && messageLength === maxLength ? `Character limit reached: ${maxLength} characters` : ''\n\n return (\n <Container data-testid={dataTestId} $docked={docked} data-docked={docked || undefined}>\n <VisuallyHiddenLabel htmlFor={inputId}>\n {label}\n </VisuallyHiddenLabel>\n <ControlsRow>\n <RegionPart show={Boolean(review)} reducedExit={prefersReducedMotion}>\n {shownReview && (\n <ReviewBar data-testid=\"agent-input-review\">\n <Typography variant=\"small\" color=\"default\">\n {shownReview.state === 'proposal' ? shownReview.summary : 'Changes applied'}\n </Typography>\n {/* Accept, then Undo, render as the same first button, so focus stays on it after Accept */}\n <ReviewActions>\n {shownReview.state === 'proposal' ? (\n <>\n <Button variant=\"primary\" size=\"small\" onClick={shownReview.onAccept}>\n Accept\n </Button>\n <Button variant=\"secondary\" size=\"small\" onClick={() => onReviewDiscard(shownReview.onDiscard)}>\n Discard\n </Button>\n </>\n ) : (\n <Button variant=\"naked\" size=\"small\" onClick={() => onReviewUndo(shownReview.onUndo)}>\n Undo\n </Button>\n )}\n </ReviewActions>\n </ReviewBar>\n )}\n </RegionPart>\n\n <RegionPart show={showSuggestions} reducedExit={prefersReducedMotion}>\n <SuggestionList aria-label=\"Suggestions\" data-testid=\"agent-input-suggestions\">\n {/* Keyed by position too: an agent can return the same suggestion twice */}\n {shownSuggestions.map((suggestion, index) => (\n <li key={`${index}-${suggestion}`}>\n <SuggestionChip onClick={() => onPickSuggestion(suggestion)}>{suggestion}</SuggestionChip>\n </li>\n ))}\n </SuggestionList>\n </RegionPart>\n\n <VisuallyHidden aria-live=\"polite\" aria-atomic=\"true\" data-testid=\"agent-input-review-announcement\">\n {reviewAnnouncement}\n </VisuallyHidden>\n\n <InputWrapper>\n <InputShell data-disabled={disabled}>\n <Input\n ref={inputRef}\n id={inputId}\n rows={1}\n enterKeyHint=\"send\"\n aria-label={label}\n value={displayedValue}\n onChange={onTextChange}\n onKeyDown={onInputKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={isListening}\n aria-describedby={showCounter ? `${statusId} ${counterId}` : statusId}\n aria-invalid={isOverLimit || undefined}\n />\n\n <InputActions>\n {hasVoice && (\n <MicButtonWrapper $isListening={isListening} $reducedMotion={prefersReducedMotion}>\n {isListening && (\n <MicListeningRing\n $reducedMotion={prefersReducedMotion}\n aria-hidden=\"true\"\n data-testid=\"agent-input-listening-ring\"\n data-animated={prefersReducedMotion ? 'false' : 'true'}\n />\n )}\n <CircularActionIconButton\n variant=\"naked\"\n size=\"medium\"\n iconName={'mic'}\n onClick={onMicToggle}\n aria-pressed={isListening}\n aria-label={isListening ? 'Stop voice input' : 'Start voice input'}\n disabled={disabled || effectiveSubmitting}\n type=\"button\"\n />\n </MicButtonWrapper>\n )}\n\n {showStop ? (\n <CircularActionIconButton\n variant=\"secondary\"\n size=\"medium\"\n iconName=\"stop\"\n onClick={() => onStop?.()}\n disabled={disabled}\n aria-label=\"Stop\"\n type=\"button\"\n />\n ) : (\n <CircularActionIconButton\n variant=\"secondary\"\n size=\"medium\"\n iconName=\"directionUp\"\n onClick={() => submitPayload(currentValue, 'text')}\n disabled={sendDisabled}\n aria-label=\"Send message\"\n type=\"button\"\n />\n )}\n </InputActions>\n </InputShell>\n </InputWrapper>\n </ControlsRow>\n\n <StatusRow>\n <StatusText $isError={isStatusError}>\n <StatusAnnouncement id={statusId} role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n {resolvedStatus && (\n <Typography variant=\"small\" color={isStatusError ? 'error' : 'subdued'}>\n {resolvedStatus}\n </Typography>\n )}\n </StatusAnnouncement>\n </StatusText>\n\n <StatusEnd>\n {isListening && !prefersReducedMotion && (\n <MeterContainer aria-hidden=\"true\">\n {meterBars.map((barHeight, index) => (\n <MeterBar key={`meter-${index}`} $height={barHeight} />\n ))}\n </MeterContainer>\n )}\n\n {showCounter && (\n <Typography variant=\"small\" color={isOverLimit ? 'error' : 'subdued'}>\n <span id={counterId} data-testid=\"agent-input-counter\">\n {messageLength}/{maxLength}\n <VisuallyHidden> characters</VisuallyHidden>\n </span>\n </Typography>\n )}\n </StatusEnd>\n\n {maxLength !== undefined && (\n <VisuallyHidden role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" data-testid=\"agent-input-limit-announcement\">\n {limitAnnouncement}\n </VisuallyHidden>\n )}\n </StatusRow>\n </Container>\n )\n}\n\nexport const AgentInput = forwardRef(AgentInputWithRef)\n\nAgentInput.displayName = 'AgentInput'\n","import React from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n// The dismiss timer needs the resolved duration, not its CSS variable (decision 0041)\n// eslint-disable-next-line no-restricted-imports\nimport tokenValues from '@/styles/tokens.json'\nimport { Icon } from '../../atoms/Icon'\nimport { IconButton } from '../../atoms/IconButton'\nimport type { IconName } from '../../../types/icons'\nimport { useInert } from '../../../lib/usePresence'\n\nconst { semantic } = tokens\nconst { alert } = tokens.component\nconst { duration, easing } = semantic.motion\n\n// Dismissing fades the alert out, then collapses the space it took (Ollie's call, #35).\n// Each half takes duration.fast, so the whole exit stays within the 300ms maximum (P6). The timer\n// needs the resolved value, not the CSS variable (decision 0041).\nconst FADE_MS = parseInt(tokenValues.semantic.motion.duration.fast, 10)\nconst EXIT_MS = FADE_MS * 2\n\n// The --alert-exit-* properties are the alert's height and vertical padding, measured\n// when it's dismissed, so nothing moves until the fade has finished\nconst fadeThenCollapse = keyframes`\n 0%, 50% {\n max-height: var(--alert-exit-height);\n padding-top: var(--alert-exit-padding-top);\n padding-bottom: var(--alert-exit-padding-bottom);\n border-width: ${semantic.border.width.thin};\n }\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n }\n 100% {\n opacity: 0;\n max-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n border-width: 0;\n }\n`\n\nconst fadeOut = keyframes`\n from { opacity: 1; }\n to { opacity: 0; }\n`\n\n// The exit ends on the alert's own animationend: 300ms, or 150ms under reduced motion\n// (chosen when dismissed). A timer of the same length removes it if no animation event\n// arrives, for example where animations are disabled or the tab is hidden.\n\n// The generated names of the two exits (full, and reduced motion)\nconst EXIT_ANIMATION_NAMES = [fadeThenCollapse.getName(), fadeOut.getName()]\n\nexport interface AlertProps {\n /**\n * Visual style variant affecting background, border, and icon colors\n * - error: Critical issues, validation errors (cross in a hexagon)\n * - warning: Cautions, potential issues (`!` in a triangle)\n * - info: Tips, helper text, neutral information (`i` in a square)\n * - success: Confirmations, successful operations (tick in a circle)\n * @default 'info'\n */\n variant?: 'error' | 'warning' | 'info' | 'success'\n\n /**\n * Whether the severity border is drawn (decision 0019)\n * - outlined: severity tint and a 1px severity border. Only for alerts at the top: a\n * page-level alert at the top of the page, an alert at the top of the content area, and an\n * error summary\n * - borderless: severity tint only. Every other alert, including alerts inside content and at\n * the bottom of a page; the icon and title colour carry the severity\n * @default 'outlined'\n */\n appearance?: 'outlined' | 'borderless'\n \n /**\n * Alert message content\n */\n children: React.ReactNode\n \n /**\n * Optional title/heading for the alert\n */\n title?: string\n \n /**\n * Show close/dismiss button\n * @default false\n */\n dismissible?: boolean\n \n /**\n * Callback function when alert is dismissed. Called once the dismiss animation has\n * finished and the alert has been removed.\n */\n onDismiss?: () => void\n \n /**\n * Optional action button or component, placed below the message and left-aligned with it\n */\n action?: React.ReactNode\n \n /**\n * ARIA live region behavior\n * - polite: Non-urgent announcements\n * - assertive: Important, time-sensitive information\n * - off: Not announced\n * @default 'polite'\n */\n ariaLive?: 'polite' | 'assertive' | 'off'\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\n// Default icons by variant\n// Each severity's status icon (decision 0045): decorative, because the title and message say it\nconst variantIcons: Record<string, IconName> = {\n error: 'statusError',\n warning: 'statusWarning',\n info: 'statusInfo',\n success: 'statusSuccess'\n}\n\n// Icon colors by variant (using semantic icon color tokens)\nconst variantIconColors: Record<string, 'error' | 'warning' | 'success' | 'interactive'> = {\n error: 'error',\n warning: 'warning',\n info: 'interactive',\n success: 'success'\n}\n\n// Title colors by variant (using semantic text color tokens)\nconst variantTitleColors: Record<string, 'error' | 'warning' | 'success' | 'interactive'> = {\n error: 'error',\n warning: 'warning',\n info: 'interactive',\n success: 'success'\n}\n\nconst StyledAlert = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $variant: AlertProps['variant']\n $appearance: NonNullable<AlertProps['appearance']>\n $isExiting: boolean\n $reducedExit: boolean\n}>`\n display: flex;\n /* Items start at the top, so the icon and dismiss button line up with the first line */\n align-items: flex-start;\n gap: ${semantic.space[300]};\n padding: ${semantic.space[300]};\n border-radius: ${semantic.radius.sm};\n border: ${semantic.border.width.thin} solid;\n position: relative;\n width: 100%;\n \n /* Severity × appearance colours from Alert's component tokens (decision 0019). Borderless\n keeps a transparent border, so both appearances take the same space. */\n background-color: ${({ $variant = 'info' }) => alert.severity[$variant].background};\n color: ${({ $variant = 'info' }) => alert.severity[$variant].text};\n border-color: ${({ $variant = 'info', $appearance }) => alert.appearance[$appearance].borderColor[$variant]};\n \n /* Responsive adjustments */\n @media (min-width: ${semantic.breakpoint.md}) {\n padding: ${semantic.space[400]};\n }\n\n /* The exit is chosen once, when dismissed (not by a media query), so a reduced-motion\n preference that changes mid-exit can't swap animations and flash the faded alert back.\n Reduced motion: fade only; the space closes instantly afterwards. */\n ${({ $isExiting, $reducedExit }) => $isExiting && css`\n overflow: hidden;\n pointer-events: none;\n animation: ${$reducedExit\n ? css`${fadeOut} ${duration.fast} ${easing.accelerate} forwards`\n : css`${fadeThenCollapse} ${EXIT_MS}ms ${easing.accelerate} forwards`};\n `}\n`\n\nconst StyledIconContainer = styled.div`\n display: flex;\n align-items: center;\n flex-shrink: 0;\n`\n\nconst StyledContent = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: ${semantic.space[100]};\n min-width: 0; /* Allow text wrapping */\n`\n\nconst StyledTitle = styled.span`\n font: ${alert.title.typography};\n line-height: ${alert.title.lineHeight};\n margin: 0;\n`\n\nconst StyledMessage = styled.span`\n font: ${alert.message.typography};\n line-height: ${alert.message.lineHeight};\n`\n\n// The action follows the content, left-aligned with it, so it's read after the message\n// (#122). With the content's xs gap, the space above it is md: a separate step.\nconst StyledActions = styled.div`\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: ${semantic.space[200]};\n margin-top: calc(${semantic.space[300]} - ${semantic.space[100]});\n`\n\n// The dismiss button's centre lines up with the first line of content: the title, or the\n// message when there's no title (decision 0019). The slot is as tall as that line and the\n// button is centred in it, overflowing evenly into the padding, so it stays aligned at every\n// padding and line height. Being in the row, it also keeps text and actions from running under it.\nconst StyledDismissSlot = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $lineHeight: string }>`\n display: flex;\n align-items: center;\n flex-shrink: 0;\n height: ${({ $lineHeight }) => $lineHeight};\n`\n\n// The glyph sits on the padding edge, mirroring the severity icon on the left\nconst StyledDismissButton = styled(IconButton)`\n margin-right: calc((${semantic.size.control.sm} - ${semantic.size.icon.sm}) / -2);\n`\n\nexport const Alert = ({\n variant = 'info',\n appearance = 'outlined',\n children,\n title,\n dismissible = false,\n onDismiss,\n action,\n ariaLive = 'polite',\n 'data-testid': dataTestId,\n ...restProps\n}: AlertProps) => {\n // `inline` was removed in 3.0 (use InlineAlert, decision 0019); plain JavaScript that still\n // passes it gets a block alert, with the prop kept off the DOM\n const { inline: _inline, ...props } = restProps as typeof restProps & { inline?: unknown }\n const [phase, setPhase] = React.useState<'visible' | 'exiting' | 'dismissed'>('visible')\n const [reducedExit, setReducedExit] = React.useState(false)\n const [exitStyle, setExitStyle] = React.useState<React.CSSProperties>()\n const alertRef = React.useRef<HTMLDivElement>(null)\n // While it exits, its controls leave the tab order and can't be activated\n useInert(alertRef, phase === 'exiting')\n const onDismissRef = React.useRef(onDismiss)\n React.useEffect(() => {\n onDismissRef.current = onDismiss\n }, [onDismiss])\n\n const handleDismiss = () => {\n const node = alertRef.current\n if (node) {\n const style = window.getComputedStyle(node)\n const { paddingTop, paddingBottom } = style\n // max-height applies to the content box unless the alert is border-box (it depends on\n // the consumer's reset), so measure whichever box it uses; nothing moves at the click\n const height = Math.max(\n 0,\n style.boxSizing === 'border-box'\n ? node.offsetHeight\n : node.offsetHeight -\n parseFloat(paddingTop) -\n parseFloat(paddingBottom) -\n parseFloat(style.borderTopWidth) -\n parseFloat(style.borderBottomWidth)\n )\n setExitStyle({\n '--alert-exit-height': `${height}px`,\n '--alert-exit-padding-top': paddingTop,\n '--alert-exit-padding-bottom': paddingBottom,\n } as React.CSSProperties)\n }\n setReducedExit(\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches\n )\n setPhase('exiting')\n }\n\n React.useEffect(() => {\n if (phase !== 'exiting') return\n const timer = setTimeout(() => setPhase('dismissed'), reducedExit ? FADE_MS : EXIT_MS)\n return () => clearTimeout(timer)\n }, [phase, reducedExit])\n\n // onDismiss fires once the alert has been removed from the DOM, so a consumer that\n // unmounts it in onDismiss still gets the animation, and can't observe it\n React.useEffect(() => {\n if (phase === 'dismissed') onDismissRef.current?.()\n }, [phase])\n\n if (phase === 'dismissed') {\n return null\n }\n\n const isExiting = phase === 'exiting'\n\n // Consumers can pass extra HTML attributes, including style, aria-hidden and onAnimationEnd\n const forwarded = props as {\n style?: React.CSSProperties\n 'aria-hidden'?: React.AriaAttributes['aria-hidden']\n onAnimationEnd?: React.AnimationEventHandler<HTMLDivElement>\n }\n\n const handleAnimationEnd = (event: React.AnimationEvent<HTMLDivElement>) => {\n forwarded.onAnimationEnd?.(event)\n // Only the exit itself ends the dismissal: not animations bubbling up from children,\n // on pseudo-elements, or other animations a consumer puts on the alert\n if (\n isExiting &&\n event.target === event.currentTarget &&\n !event.pseudoElement &&\n EXIT_ANIMATION_NAMES.includes(event.animationName)\n ) {\n setPhase('dismissed')\n }\n }\n\n // Get the icon for the current variant\n const iconName = variantIcons[variant]\n const alertIconColor = variantIconColors[variant]\n const alertTitleColor = variantTitleColors[variant]\n\n // Determine ARIA role based on variant and aria-live\n const role = variant === 'error' ? 'alert' : 'status'\n\n return (\n <StyledAlert\n role={role}\n aria-live={ariaLive}\n $variant={variant}\n $appearance={appearance}\n $isExiting={isExiting}\n $reducedExit={reducedExit}\n data-testid={dataTestId}\n {...props}\n ref={alertRef}\n aria-hidden={isExiting ? true : forwarded['aria-hidden']}\n style={isExiting ? { ...forwarded.style, ...exitStyle } : forwarded.style}\n onAnimationEnd={handleAnimationEnd}\n >\n <StyledIconContainer aria-hidden=\"true\">\n <Icon name={iconName} size=\"md\" iconColor={alertIconColor} />\n </StyledIconContainer>\n\n <StyledContent>\n {title && <StyledTitle role=\"heading\" aria-level={6} color={alertTitleColor}>{title}</StyledTitle>}\n <StyledMessage>{children}</StyledMessage>\n {action && <StyledActions>{action}</StyledActions>}\n </StyledContent>\n\n {dismissible && (\n <StyledDismissSlot\n $lineHeight={title ? alert.title.lineHeight : alert.message.lineHeight}\n >\n <StyledDismissButton\n iconName=\"close\"\n size=\"small\"\n variant=\"naked\"\n onClick={handleDismiss}\n aria-label=\"Dismiss alert\"\n data-testid={dataTestId ? `${dataTestId}-dismiss` : undefined}\n />\n </StyledDismissSlot>\n )}\n </StyledAlert>\n )\n}\n\nAlert.displayName = 'Alert'\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { Icon } from '../../atoms/Icon'\nimport type { IconName } from '../../../types/icons'\nimport { StatusShape } from '../../atoms/StatusLabel/StatusShape'\nimport type { StatusShape as StatusShapeName } from '../../../lib/statusShapes'\n\nconst { semantic } = tokens\nconst { color, typography, size } = semantic\n\nexport type InlineAlertVariant = 'error' | 'warning' | 'info' | 'success'\nexport type InlineAlertSize = 'small' | 'medium'\n\nexport interface InlineAlertProps {\n /**\n * Severity, shown by the icon and the text colour\n * @default 'info'\n */\n variant?: InlineAlertVariant\n\n /**\n * Size on the label scale (decision 0018): small (20px) for dense places such as tables,\n * medium (24px) for forms and content. The message can wrap; the size sets its minimum height.\n * @default 'medium'\n */\n size?: InlineAlertSize\n\n /**\n * The message: short text only (no title, action or dismiss button; use Alert for those).\n * With no message, InlineAlert renders an empty live region and no icon: keep it mounted and\n * set the message to have screen readers announce it reliably.\n */\n children?: React.ReactNode\n\n /**\n * ARIA live region behaviour, as on Alert\n * - polite: non-urgent announcements\n * - assertive: important, time-sensitive information\n * - off: not announced\n * @default 'polite'\n */\n ariaLive?: 'polite' | 'assertive' | 'off'\n\n /**\n * Element id. When the message gives feedback about a control, the control references this\n * id with aria-describedby, so the message is read when the control is focused.\n */\n id?: string\n\n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\n// Each severity's status icon and, at the small size, its shape (decision 0045)\nconst variantIcons: Record<InlineAlertVariant, IconName> = {\n error: 'statusError',\n warning: 'statusWarning',\n info: 'statusInfo',\n success: 'statusSuccess'\n}\n\nconst variantTextColors: Record<InlineAlertVariant, string> = {\n error: color.text.danger,\n warning: color.text.warning,\n info: color.text.accent,\n success: color.text.success\n}\n\nconst variantShapes: Record<InlineAlertVariant, StatusShapeName> = {\n error: 'error',\n warning: 'warning',\n info: 'info',\n success: 'success'\n}\n\nconst sizeConfig = {\n small: { font: typography.caption, gap: semantic.space[100], icon: 'xs' as const },\n medium: { font: typography.small, gap: semantic.space[200], icon: 'sm' as const }\n}\n\nconst StyledInlineAlert = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $variant: InlineAlertVariant; $size: InlineAlertSize; $empty: boolean }>`\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n min-height: ${({ $size, $empty }) => ($empty ? '0' : size.label[$size])};\n gap: ${({ $size }) => sizeConfig[$size].gap};\n font: ${({ $size }) => sizeConfig[$size].font};\n color: ${({ $variant }) => variantTextColors[$variant]};\n`\n\n// One line of the message's font tall, so the icon centres on the first line at any size:\n// the zero-width space gives the box the font's line height without a fixed value\nconst StyledIconLine = styled.span`\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n\n &::after {\n content: '\\\\200B';\n }\n`\n\nconst StyledMessage = styled.span`\n min-width: 0;\n`\n\n/**\n * InlineAlert is a short, local message that sits next to what it's about: between paragraphs,\n * below a field or in a table cell (decision 0019). A severity icon and text in the severity\n * colour, with no background or border. For a title, an action or a dismiss button, use Alert.\n *\n * @example\n * ```tsx\n * <InlineAlert variant=\"success\">Saved</InlineAlert>\n *\n * // Field feedback: the control references the message with aria-describedby\n * <input id=\"email\" aria-describedby=\"email-error\" aria-invalid=\"true\" />\n * <InlineAlert id=\"email-error\" variant=\"error\" size=\"small\">Enter a valid email address</InlineAlert>\n * ```\n */\nexport const InlineAlert: React.FC<InlineAlertProps> = ({\n variant = 'info',\n size: alertSize = 'medium',\n children,\n ariaLive = 'polite',\n id,\n 'data-testid': dataTestId\n}) => {\n // A live region is announced reliably only when it exists before its content changes, so with\n // no message it stays mounted as an empty region, with no icon and no minimum height\n const hasMessage = children !== undefined && children !== null && children !== false && children !== ''\n\n return (\n <StyledInlineAlert\n // Same roles as Alert; ariaLive sets how urgently changes are announced\n role={variant === 'error' ? 'alert' : 'status'}\n aria-live={ariaLive}\n id={id}\n data-testid={dataTestId}\n $variant={variant}\n $size={alertSize}\n $empty={!hasMessage}\n >\n {hasMessage && (\n <>\n <StyledIconLine aria-hidden=\"true\">\n {/* The icon takes the text colour, so the two can't diverge */}\n {/* A 12px outline icon is too small to read, so the small size shows the status shape (0045) */}\n {alertSize === 'small'\n ? <StatusShape shape={variantShapes[variant]} />\n : <Icon name={variantIcons[variant]} size={sizeConfig[alertSize].icon} iconColor=\"inherit\" />}\n </StyledIconLine>\n <StyledMessage>{children}</StyledMessage>\n </>\n )}\n </StyledInlineAlert>\n )\n}\n\nInlineAlert.displayName = 'InlineAlert'\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Container } from '../../atoms/Container'\nimport { Typography } from '../../atoms/Typography'\nimport { Icon } from '../../atoms/Icon'\nimport tokens from '@/lib/cssTokens'\n\ninterface Breadcrumb {\n label: string\n url: string\n}\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[]\n 'data-testid'?: string\n /**\n * Custom link component (e.g., Next.js Link)\n * @example linkComponent={NextLink}\n */\n linkComponent?: React.ComponentType<any>\n}\n\nconst BreadcrumbNavStyled = styled.nav`\n border-bottom: ${tokens.semantic.border.default};\n\n ol {\n display: flex;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n }\n`\n\nconst BreadcrumbStyled = styled.li`\n text-transform: uppercase;\n display: inline-flex;\n align-items: center;\n gap: ${tokens.semantic.space[200]};\n padding: ${tokens.semantic.space[200]};\n\n &:last-of-type a {\n text-decoration: none;\n color: ${tokens.semantic.color.text.muted};\n }\n\n &:last-of-type p {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: ${tokens.component.breadcrumbs.item.maxWidth};\n }\n\n > a {\n display: inline-flex;\n align-items: center;\n text-decoration: underline;\n color: ${tokens.semantic.color.text.default};\n }\n`\n\nconst BreadcrumbSeparator = styled.span`\n display: inline-flex;\n align-items: center;\n opacity: 0.5;\n`\n\nconst isInternalUrl = (url: string) => {\n return url.startsWith('/') && !url.startsWith('http')\n}\n\nexport const Breadcrumbs: React.FC<BreadcrumbsProps> = ({ \n breadcrumbs, \n linkComponent: LinkComponent \n}) => {\n return (\n <Container>\n <BreadcrumbNavStyled aria-label=\"breadcrumb\">\n <ol>\n {breadcrumbs.map((breadcrumb, index) => (\n <React.Fragment key={index}>\n <BreadcrumbStyled>\n {index === breadcrumbs.length - 1 ? (\n <Typography variant=\"caption\">{breadcrumb.label}</Typography>\n ) : LinkComponent && isInternalUrl(breadcrumb.url) ? (\n <LinkComponent href={breadcrumb.url}>\n <Typography variant=\"caption\">{breadcrumb.label}</Typography>\n </LinkComponent>\n ) : (\n <a \n href={breadcrumb.url} \n {...(!isInternalUrl(breadcrumb.url) && { \n target: \"_blank\", \n rel: \"noopener noreferrer\" \n })}\n >\n <Typography variant=\"caption\">{breadcrumb.label}</Typography>\n </a>\n )}\n </BreadcrumbStyled>\n {index < breadcrumbs.length - 1 && (\n <BreadcrumbSeparator aria-hidden=\"true\">\n <Icon name=\"arrowRight\" size=\"xs\" iconColor=\"subdued\" />\n </BreadcrumbSeparator>\n )}\n </React.Fragment>\n ))}\n </ol>\n </BreadcrumbNavStyled>\n </Container>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Stack } from '../../atoms/Stack'\nimport { Typography } from '../../atoms/Typography'\nimport { Picture } from '../../atoms/Picture/Picture'\nimport tokens from '@/lib/cssTokens'\n\nexport type CardSmallProps = {\n title: string\n picture?: string\n subtitle?: string\n meta?: string\n href?: string\n /**\n * Custom link component (e.g., Next.js Link)\n * @example linkComponent={NextLink}\n */\n linkComponent?: React.ComponentType<any>\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\n// The whole card is one link (#185): hovering anywhere fades its image, pressing fades it one step\n// further, and keyboard focus draws the system focus ring around the card (decision 0029)\nconst CardSmallStyled = styled.div`\n a {\n display: block;\n text-decoration: none;\n border-radius: ${tokens.semantic.radius.sm};\n }\n\n img {\n border-radius: ${tokens.semantic.radius.sm};\n transition: ${tokens.semantic.motion.transition.press};\n width: 100%;\n height: auto;\n display: block;\n }\n\n a:hover img {\n opacity: ${tokens.semantic.opacity.hover};\n }\n\n a:active img {\n opacity: ${tokens.semantic.opacity.pressed};\n }\n\n a:focus-visible {\n outline: ${tokens.semantic.border.focus};\n outline-offset: ${tokens.semantic.border.focusOffset};\n }\n`\n\nexport const CardSmall: React.FC<CardSmallProps> = ({\n title,\n picture,\n subtitle,\n meta,\n href,\n linkComponent: LinkComponent,\n 'data-testid': dataTestId,\n}) => {\n if (!picture || !meta) {\n return null\n }\n\n const content = (\n <Stack direction=\"column\" gap='sm'>\n <Picture\n title={title}\n src={picture}\n width={300}\n height={300}\n />\n <Stack direction=\"column\" gap='xs'>\n <Typography variant=\"small\">{title}</Typography>\n <Stack direction=\"column\" gap='none'>\n {subtitle && <Typography variant=\"label\" color=\"subdued\">{subtitle}</Typography>}\n {meta && <Typography variant=\"label\" color=\"subdued\">{meta}</Typography>}\n </Stack>\n </Stack>\n </Stack>\n )\n\n return (\n <CardSmallStyled data-testid={dataTestId}>\n {LinkComponent && href ? (\n <LinkComponent href={href} aria-label={title}>\n {content}\n </LinkComponent>\n ) : (\n <a href={href || '#'} aria-label={title}>\n {content}\n </a>\n )}\n </CardSmallStyled>\n )\n}\n","import styled from 'styled-components'\nimport { Chip } from '../../atoms/Chip'\nimport { Picture } from '../../atoms/Picture'\nimport { Stack } from '../../atoms/Stack'\nimport { Typography } from '../../atoms/Typography'\nimport tokens from '@/lib/cssTokens'\n\n\nexport type CardLargeProps = {\n title: string\n excerpt: string\n subtitle?: string\n labels?: string[]\n picture: string\n onImageClick?: () => void\n imageHref?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\nconst CardLargeStyled = styled.div`\n max-width: ${tokens.component.cardLarge.maxWidth};\n\n a {\n text-decoration: none;\n }\n\n /* The image answers hover and press through Picture, and only when it's clickable (issue 185) */\n img {\n border-radius: ${tokens.semantic.radius['2xl']};\n width: 100%;\n }\n`\n\nexport const CardLarge = ({\n title,\n excerpt,\n subtitle,\n labels = [],\n picture,\n onImageClick,\n imageHref,\n 'data-testid': dataTestId,\n}: CardLargeProps) => {\n return (\n <CardLargeStyled data-testid={dataTestId}>\n <Stack direction=\"column\" gap=\"md\">\n <Picture \n title={title} \n src={picture} \n onClick={onImageClick}\n href={imageHref}\n />\n <Stack direction=\"row\" alignItems=\"flex-start\" justifyContent=\"space-between\" gap=\"xs\">\n <Stack direction=\"column\" gap=\"xs\">\n <Typography variant=\"h5\">{title}</Typography>\n {subtitle && (\n <Typography variant=\"small\" color=\"subdued\">{subtitle}</Typography>\n )}\n {excerpt && (\n <Typography variant=\"body\">{excerpt}</Typography>\n )}\n </Stack>\n <Stack direction=\"row\" alignItems=\"center\" gap=\"xs\">\n {Array.isArray(labels) && labels.map((label, index) => (\n <Chip key={index} title={label} variant=\"default\" />\n ))}\n </Stack>\n </Stack>\n </Stack>\n </CardLargeStyled>\n )\n}\n","import styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { forcedColors } from '../../../lib/styleUtils'\n\nexport type SelectableInputState = 'default' | 'error' | 'disabled'\n\ninterface StyledCheckboxInputProps {\n $state: SelectableInputState\n $checked: boolean\n $indeterminate?: boolean\n}\n\n/**\n * Hidden native checkbox input for accessibility\n * Maintains keyboard navigation and screen reader support\n */\nexport const HiddenCheckboxInput = styled.input.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<StyledCheckboxInputProps>`\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n pointer-events: none;\n`\n\n/**\n * Custom checkbox visual component\n * 24px × 24px for 8px grid alignment\n * Uses component.input.* tokens for consistency with TextField\n */\nexport const StyledCheckbox = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<StyledCheckboxInputProps>`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${tokens.component.checkbox.box.size};\n height: ${tokens.component.checkbox.box.size};\n min-width: ${tokens.component.checkbox.box.size};\n min-height: ${tokens.component.checkbox.box.size};\n border-radius: ${tokens.component.input.default.borderRadius};\n border: ${tokens.component.input.default.borderWidth} solid;\n background-color: ${(props) =>\n props.$checked || props.$indeterminate\n ? tokens.semantic.color.fill.inverse\n : tokens.component.input.default.backgroundColor};\n border-color: ${(props) => {\n if (props.$state === 'error') return tokens.component.input.error.borderColor\n // A checked box's border matches its fill, so the box reads as solid\n if (props.$checked || props.$indeterminate)\n return tokens.semantic.color.fill.inverse\n return tokens.component.input.default.borderColor\n }};\n cursor: ${(props) => (props.$state === 'disabled' ? 'not-allowed' : 'pointer')};\n transition: background-color ${tokens.semantic.motion.duration.fast} ${tokens.semantic.motion.easing.decelerate},\n border-color ${tokens.semantic.motion.duration.fast} ${tokens.semantic.motion.easing.decelerate},\n ${tokens.semantic.motion.transition.focus};\n flex-shrink: 0;\n\n /* Hover state */\n ${HiddenCheckboxInput}:not(:disabled):hover + & {\n border-color: ${(props) =>\n props.$state === 'error'\n ? tokens.component.input.error.hover.borderColor\n : props.$checked || props.$indeterminate\n ? tokens.semantic.color.fill.inverse\n : tokens.component.input.hover.borderColor};\n }\n\n /* Focus state */\n ${HiddenCheckboxInput}:focus-visible + & {\n outline: ${tokens.component.input.focus.outline};\n outline-offset: ${tokens.semantic.border.focusOffset};\n border-color: ${(props) =>\n props.$state === 'error'\n ? tokens.component.input.error.focus.borderColor\n : tokens.component.input.focus.borderColor};\n }\n\n /* Disabled state */\n ${(props) =>\n props.$state === 'disabled' &&\n `\n background-color: ${tokens.component.input.disabled.backgroundColor};\n border-color: ${tokens.component.input.disabled.borderColor};\n `}\n\n /* Checkmark icon */\n &::after {\n content: '';\n position: absolute;\n display: ${(props) => (props.$checked ? 'block' : 'none')};\n left: 6px;\n top: 3px;\n width: 4px;\n height: 8px;\n border: solid ${tokens.semantic.color.text.inverse};\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n }\n\n /* Indeterminate icon (horizontal line) */\n &::before {\n content: '';\n position: absolute;\n display: ${(props) => (props.$indeterminate ? 'block' : 'none')};\n left: 4px;\n top: 8px;\n width: 10px;\n height: 2px;\n background-color: ${tokens.semantic.color.text.inverse};\n }\n\n /* Forced colours drop fills (decision 0038): a checked or indeterminate box takes the system\n selection colour, or GrayText when disabled, and its mark the matching text colour. The\n indeterminate dash is a fill, so it needs the same treatment. */\n ${(props) => {\n const on = props.$checked || props.$indeterminate\n const disabled = props.$state === 'disabled'\n if (!on) return disabled ? `${forcedColors} { border-color: GrayText; }` : ''\n const fill = disabled ? 'GrayText' : 'Highlight'\n const mark = disabled ? 'Canvas' : 'HighlightText'\n return `${forcedColors} {\n forced-color-adjust: none;\n background-color: ${fill};\n border-color: ${fill};\n &::after { border-color: ${mark}; }\n &::before { background-color: ${mark}; }\n }`\n }}\n`\n\n/**\n * Container for checkbox with proper spacing and alignment\n * 48px min-height for touch target (8px grid aligned)\n */\nexport const StyledCheckboxContainer = styled.label.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $disabled: boolean; $labelPosition: 'left' | 'right' }>`\n display: inline-flex;\n align-items: center;\n gap: ${tokens.semantic.space[300]};\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'pointer')};\n min-height: ${tokens.component.checkbox.row.minHeight};\n flex-direction: ${(props) => (props.$labelPosition === 'left' ? 'row-reverse' : 'row')};\n user-select: none;\n`\n\n/**\n * Label text with proper typography\n */\nexport const StyledCheckboxLabel = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $disabled: boolean }>`\n font: ${tokens.component.input.default.font};\n color: ${(props) =>\n props.$disabled\n ? tokens.component.input.disabled.textColor\n : tokens.component.input.default.textColor};\n`\n","import React, { forwardRef, useId, InputHTMLAttributes } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport {\n HiddenCheckboxInput,\n StyledCheckbox,\n StyledCheckboxContainer,\n StyledCheckboxLabel,\n type SelectableInputState,\n} from './SelectableInputBase'\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n /**\n * The label text for the checkbox\n */\n label: string\n /**\n * Whether the checkbox is checked\n */\n checked?: boolean\n /**\n * Whether the checkbox is in an indeterminate state\n * Useful for \"select all\" scenarios where some but not all items are selected\n */\n indeterminate?: boolean\n /**\n * Position of the label relative to the checkbox\n * @default 'right'\n */\n labelPosition?: 'left' | 'right'\n /**\n * Helper text displayed below the checkbox\n */\n helperText?: string\n /**\n * Error message to display. When provided, checkbox enters error state\n */\n error?: string\n /**\n * Whether the checkbox is disabled\n */\n disabled?: boolean\n /**\n * Callback fired when the checkbox state changes\n */\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * Additional ARIA description for accessibility\n */\n 'aria-describedby'?: string\n}\n\nconst StyledFieldContainer = styled.div`\n display: inline-flex;\n flex-direction: column;\n gap: ${tokens.semantic.space[100]};\n`\n\nconst StyledHelperText = styled.span<{ $error?: boolean }>`\n font: ${tokens.component.field.helperText.typography};\n color: ${(props) =>\n props.$error\n ? tokens.component.field.helperText.colorError\n : tokens.component.field.helperText.color};\n margin-left: ${tokens.semantic.space[900]}; /* Align with label text after checkbox */\n display: block;\n`\n\n/**\n * Checkbox component for binary selection with WCAG 2.2 AA compliance\n *\n * Features:\n * - Custom styled checkbox with clear visual states\n * - Integrated label with configurable positioning\n * - Helper text and error messaging\n * - Indeterminate state support\n * - Full keyboard navigation (Space to toggle)\n * - ARIA attributes for screen readers\n * - 8px grid aligned (48px touch target)\n *\n * @example\n * ```tsx\n * <Checkbox\n * label=\"Accept terms and conditions\"\n * checked={accepted}\n * onChange={(e) => setAccepted(e.target.checked)}\n * required\n * />\n * ```\n */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n label,\n checked = false,\n indeterminate = false,\n labelPosition = 'right',\n helperText,\n error,\n disabled = false,\n onChange,\n id: providedId,\n 'aria-describedby': ariaDescribedby,\n ...rest\n },\n ref\n ) => {\n const generatedId = useId()\n const id = providedId || generatedId\n const helperTextId = `${id}-helper-text`\n const errorId = `${id}-error`\n\n // Determine the state for styling\n const state: SelectableInputState = disabled ? 'disabled' : error ? 'error' : 'default'\n\n // Set up ARIA describedby\n const describedBy = [\n ariaDescribedby,\n helperText ? helperTextId : undefined,\n error ? errorId : undefined,\n ]\n .filter(Boolean)\n .join(' ')\n\n // Update indeterminate property on the input element\n const inputRef = React.useRef<HTMLInputElement>(null)\n React.useImperativeHandle(ref, () => inputRef.current!)\n\n React.useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate])\n\n return (\n <StyledFieldContainer>\n <StyledCheckboxContainer $disabled={disabled} $labelPosition={labelPosition}>\n <HiddenCheckboxInput\n ref={inputRef}\n type=\"checkbox\"\n id={id}\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n aria-describedby={describedBy || undefined}\n aria-invalid={error ? true : undefined}\n $state={state}\n $checked={checked}\n $indeterminate={indeterminate}\n {...rest}\n />\n <StyledCheckbox\n $state={state}\n $checked={checked}\n $indeterminate={indeterminate}\n aria-hidden=\"true\"\n />\n <StyledCheckboxLabel $disabled={disabled}>{label}</StyledCheckboxLabel>\n </StyledCheckboxContainer>\n\n {helperText && !error && (\n <StyledHelperText id={helperTextId}>{helperText}</StyledHelperText>\n )}\n\n {error && (\n <StyledHelperText id={errorId} $error role=\"alert\" aria-live=\"polite\">\n {error}\n </StyledHelperText>\n )}\n </StyledFieldContainer>\n )\n }\n)\n\nCheckbox.displayName = 'Checkbox'\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Chip, Stack } from '@/components/atoms'\n\nexport type ChipGroupProps = {\n labels: string[]\n 'data-testid'?: string\n}\n\nconst ChipGroupWrapper = styled.div`\n > div {\n display: flex;\n flex-wrap: wrap;\n }\n`\n\nexport const ChipGroup: React.FC<ChipGroupProps> = ({ \n labels, \n 'data-testid': dataTestId \n}) => {\n return (\n <ChipGroupWrapper data-testid={dataTestId}>\n <Stack direction=\"row\" gap=\"sm\">\n {labels && labels.map((title, index) => (\n <Chip key={index} title={title} />\n ))}\n </Stack>\n </ChipGroupWrapper>\n )\n}\n","import React, { useState, useRef, useEffect } from 'react'\nimport styled from 'styled-components'\nimport { Button } from '../../atoms/Button'\nimport tokens from '@/lib/cssTokens'\nimport { reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\n\nconst { semantic: { color, border, motion } } = tokens\n\nexport interface CodeBlockProps {\n children: string\n showCopyButton?: boolean\n onCopy?: () => void\n /**\n * Maximum height in pixels before content is collapsed.\n * When set, enables expand/collapse functionality.\n */\n maxHeight?: number\n /**\n * Initial expanded state when maxHeight is set.\n * @default false\n */\n defaultExpanded?: boolean\n 'data-testid'?: string\n}\n\ninterface StyledCodeBlockProps {\n $maxHeight?: number\n $isExpanded: boolean\n $needsExpansion: boolean\n}\n\nconst StyledCodeBlock = styled.pre<StyledCodeBlockProps>`\n background-color: ${tokens.semantic.surface.raised};\n border: ${border.default};\n border-radius: ${tokens.semantic.radius.sm};\n padding: ${tokens.semantic.space[300]};\n font-family: ${tokens.component.codeBlock.fontFamily};\n font-size: ${tokens.component.codeBlock.fontSize};\n line-height: ${tokens.component.codeBlock.lineHeight};\n color: ${color.text.default};\n overflow-x: auto;\n overflow-y: ${({ $isExpanded, $needsExpansion }) => \n $needsExpansion && !$isExpanded ? 'hidden' : 'auto'};\n margin: ${tokens.semantic.space[200]} 0;\n position: relative;\n transition: max-height ${motion.duration.slow} ${motion.easing.standard};\n\n ${reducedMotion} {\n transition: none;\n }\n \n ${({ $maxHeight, $isExpanded, $needsExpansion }) => {\n if (!$maxHeight || !$needsExpansion) return ''\n // Use a large value when expanded to allow smooth transition\n // 10000px is effectively \"no limit\" for most code blocks\n return $isExpanded \n ? 'max-height: 10000px;'\n : `max-height: ${$maxHeight}px;`\n }}\n\n /* The block is focusable so keyboard users can scroll it; it shows the system focus ring\n (decision 0029) */\n &:focus-visible {\n outline: ${border.focus};\n outline-offset: ${border.focusOffset};\n }\n`\n\nconst CodeBlockWrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n`\n\nconst CopyButtonWrapper = styled.div`\n position: absolute;\n bottom: ${tokens.semantic.space[400]};\n right: ${tokens.semantic.space[200]};\n`\n\nconst ExpandButtonWrapper = styled.div<{ $hasGradient: boolean }>`\n display: flex;\n justify-content: center;\n padding: ${tokens.semantic.space[200]} 0;\n position: absolute;\n bottom: ${tokens.semantic.border.width.thin};\n left: ${tokens.semantic.border.width.thin};\n right: ${tokens.semantic.border.width.thin};\n width: calc(100% - 2 * ${tokens.semantic.border.width.thin});\n margin-bottom: ${tokens.semantic.space[200]};\n border-radius: ${tokens.semantic.radius.sm};\n transition: opacity ${motion.duration.slow} ${motion.easing.standard}, background ${motion.duration.slow} ${motion.easing.standard};\n \n ${({ $hasGradient }) => $hasGradient ? `\n margin-top: calc(-1 * ${tokens.semantic.space[800]});\n padding-top: ${tokens.semantic.space[800]};\n background: linear-gradient(\n to bottom,\n transparent 0%,\n ${tokens.semantic.surface.raised} 60%\n );\n ` : `\n background: transparent;\n `}\n`\n\nconst CopyButton: React.FC<{ text: string; onCopy?: () => void }> = ({ text, onCopy }) => {\n const [copied, setCopied] = useState(false)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n \n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(text)\n setCopied(true)\n onCopy?.()\n \n // Clear any existing timeout\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n \n // Set new timeout\n timeoutRef.current = setTimeout(() => {\n setCopied(false)\n timeoutRef.current = null\n }, 2000)\n } catch (err) {\n console.error('Failed to copy text: ', err)\n }\n }\n \n // Cleanup timeout on unmount\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n \n return (\n <CopyButtonWrapper>\n <Button \n variant=\"secondary\" \n size=\"small\" \n iconName=\"copy\"\n onClick={handleCopy}\n data-testid=\"copy-button\"\n >\n {copied ? 'Copied!' : 'Copy'}\n </Button>\n </CopyButtonWrapper>\n )\n}\n\nconst LiveRegion = styled.span`\n ${visuallyHidden}\n`\n\n/**\n * CodeBlock component for displaying formatted code with optional copy functionality\n * and expandable content for long code blocks.\n * \n * @param children - The code content to display\n * @param showCopyButton - Whether to show the copy button (default: true)\n * @param onCopy - Optional callback when code is copied\n * @param maxHeight - Maximum height in pixels before enabling expand/collapse\n * @param defaultExpanded - Initial expanded state when maxHeight is set\n * @param data-testid - Test identifier for the code block\n * \n * @example\n * ```tsx\n * // Basic usage\n * <CodeBlock>const x = 1;</CodeBlock>\n * \n * // With max height and expand/collapse\n * <CodeBlock maxHeight={200}>\n * {longCodeString}\n * </CodeBlock>\n * \n * // Start expanded\n * <CodeBlock maxHeight={200} defaultExpanded>\n * {longCodeString}\n * </CodeBlock>\n * ```\n */\nexport const CodeBlock: React.FC<CodeBlockProps> = ({ \n children, \n showCopyButton = true, \n onCopy,\n maxHeight,\n defaultExpanded = false,\n 'data-testid': testId \n}) => {\n const [isExpanded, setIsExpanded] = useState(defaultExpanded)\n const [needsExpansion, setNeedsExpansion] = useState(false)\n const [announcement, setAnnouncement] = useState('')\n const contentRef = useRef<HTMLPreElement>(null)\n \n // Check if content exceeds maxHeight\n useEffect(() => {\n if (maxHeight && contentRef.current) {\n const scrollHeight = contentRef.current.scrollHeight\n setNeedsExpansion(scrollHeight > maxHeight)\n }\n }, [children, maxHeight])\n \n const handleToggleExpand = () => {\n setIsExpanded(prev => !prev)\n // Announce state change to screen readers\n setAnnouncement(isExpanded ? 'Code block collapsed' : 'Code block expanded')\n }\n \n const showExpandButton = maxHeight && needsExpansion\n \n return (\n <CodeBlockWrapper>\n <StyledCodeBlock \n ref={contentRef}\n data-testid={testId}\n $maxHeight={maxHeight}\n $isExpanded={isExpanded}\n $needsExpansion={needsExpansion}\n aria-expanded={showExpandButton ? isExpanded : undefined}\n tabIndex={0}\n >\n {children}\n </StyledCodeBlock>\n \n {showExpandButton && (\n <ExpandButtonWrapper $hasGradient={!isExpanded}>\n <Button \n variant=\"secondary\" \n size=\"small\"\n iconName={isExpanded ? 'caretUp' : 'caretDown'}\n onClick={handleToggleExpand}\n aria-expanded={isExpanded}\n aria-controls={testId}\n data-testid=\"expand-button\"\n >\n {isExpanded ? 'Show less' : 'Show more'}\n </Button>\n </ExpandButtonWrapper>\n )}\n \n {showExpandButton && (\n <LiveRegion aria-live=\"polite\" aria-atomic=\"true\">\n {announcement}\n </LiveRegion>\n )}\n \n {showCopyButton && (\n <CopyButton text={children} onCopy={onCopy} />\n )}\n </CodeBlockWrapper>\n )\n}\n\nexport default CodeBlock\n","import React from 'react'\nimport styled from 'styled-components'\nimport { DateFormatter, DateFormatMode } from '../../atoms/DateFormatter'\nimport { MoneyDisplay, MoneyDisplayVariant } from '../../atoms/MoneyDisplay'\nimport { Stack } from '../../atoms/Stack'\nimport { Typography } from '../../atoms/Typography'\nimport tokens from '../../../lib/cssTokens'\n\nexport interface DateGroupProps {\n /** The date for this group (used for formatting the header) */\n date: Date | string\n \n /** Children to render under the date header (typically transactions) */\n children: React.ReactNode\n \n /**\n * Format mode for the date header, passed to DateFormatter's `mode`.\n */\n format?: DateFormatMode\n \n /** Whether to show total amount for this date group */\n showTotal?: boolean\n \n /** Total amount for this date group (shown if showTotal is true) */\n totalAmount?: number\n \n /** Whether to show count of items in this group */\n showCount?: boolean\n \n /** Count of items in this group (shown if showCount is true) */\n count?: number\n \n /** Whether to make the header sticky (useful for scrolling lists) */\n sticky?: boolean\n \n /** Currency for total amount display */\n currency?: string\n \n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\ninterface StyledHeaderProps {\n $sticky?: boolean\n}\n\nconst StyledHeader = styled.div<StyledHeaderProps>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ${tokens.semantic.space[300]} ${tokens.semantic.space[200]};\n background-color: ${tokens.semantic.surface.base};\n border-bottom: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border.default};\n \n ${({ $sticky }) => $sticky && `\n position: sticky;\n top: 0;\n z-index: ${tokens.semantic.layer.sticky};\n box-shadow: ${tokens.semantic.elevation.sticky};\n `}\n`\n\nconst StyledLeftSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.space[200]};\n`\n\nconst StyledRightSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.space[300]};\n`\n\nconst StyledContent = styled.div`\n /* Content area for children */\n`\n\n/**\n * DateGroup component\n * \n * Groups related content (typically transactions) under a formatted date header\n * with optional total amount and item count displays. Supports sticky headers\n * for scrolling lists.\n * \n * Composes: DateFormatter, MoneyDisplay, Stack, Typography\n */\nexport const DateGroup: React.FC<DateGroupProps> = ({\n date,\n children,\n format = 'smart',\n showTotal = false,\n totalAmount,\n showCount = false,\n count,\n sticky = false,\n currency = 'AUD',\n 'data-testid': dataTestId\n}) => {\n // Determine total variant based on amount (positive = income, negative = expense)\n const totalVariant: MoneyDisplayVariant = totalAmount && totalAmount !== 0\n ? totalAmount > 0 ? 'positive' : 'negative'\n : 'default'\n\n return (\n <div data-testid={dataTestId} role=\"group\" aria-label={`Transactions for ${date}`}>\n <StyledHeader $sticky={sticky} data-testid={dataTestId ? `${dataTestId}-header` : undefined}>\n <StyledLeftSection>\n <DateFormatter \n dateString={typeof date === 'string' ? date : date.toISOString()} \n mode={format}\n data-testid={dataTestId ? `${dataTestId}-date` : undefined}\n />\n {showCount && count !== undefined && (\n <Typography \n variant=\"caption\" \n color=\"subdued\"\n data-testid={dataTestId ? `${dataTestId}-count` : undefined}\n >\n ({count} {count === 1 ? 'item' : 'items'})\n </Typography>\n )}\n </StyledLeftSection>\n \n <StyledRightSection>\n {showTotal && totalAmount !== undefined && (\n <MoneyDisplay\n amount={totalAmount}\n currency={currency}\n variant={totalVariant}\n size=\"small\"\n weight=\"medium\"\n showSign\n data-testid={dataTestId ? `${dataTestId}-total` : undefined}\n />\n )}\n </StyledRightSection>\n </StyledHeader>\n \n <StyledContent data-testid={dataTestId ? `${dataTestId}-content` : undefined}>\n {children}\n </StyledContent>\n </div>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { Stack } from '../../atoms/Stack'\nimport { Box } from '../../atoms/Box'\nimport { Typography } from '../../atoms/Typography'\nimport { Button } from '../../atoms/Button'\nimport { Icon } from '../../atoms/Icon'\nimport { type IconName } from '../../../types/icons'\n\nconst { semantic } = tokens\n\nexport type EmptyStateIllustration = 'search' | 'transactions' | 'notifications' | 'empty' | 'error' | 'custom'\nexport type EmptyStateVariant = 'default' | 'error' | 'success'\nexport type EmptyStateSize = 'small' | 'medium' | 'large'\n\nexport interface EmptyStateAction {\n label: string\n onClick: () => void\n variant?: 'primary' | 'secondary'\n icon?: IconName\n}\n\nexport interface EmptyStateProps {\n /** Predefined illustration type */\n illustration?: EmptyStateIllustration\n /** Custom illustration (SVG string or React node) */\n customIllustration?: React.ReactNode\n /** Main heading */\n title: string\n /** Descriptive text */\n description: string\n /** Primary call-to-action */\n action?: EmptyStateAction\n /** Secondary action */\n secondaryAction?: EmptyStateAction\n /** Visual variant */\n variant?: EmptyStateVariant\n /** Size of the component */\n size?: EmptyStateSize\n /** Data test id for testing */\n 'data-testid'?: string\n}\n\ninterface StyledContainerProps {\n $size: EmptyStateSize\n}\n\nconst StyledContainer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledContainerProps>`\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n max-width: ${tokens.component.emptyState.maxWidth};\n margin: 0 auto;\n padding: ${({ $size }) => \n $size === 'small' ? semantic.space[800] :\n $size === 'large' ? semantic.space[1400] :\n semantic.space[1000]\n };\n`\n\ninterface StyledIllustrationProps {\n $size: EmptyStateSize\n $variant: EmptyStateVariant\n}\n\nconst StyledIllustration = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledIllustrationProps>`\n width: ${({ $size }) =>\n $size === 'small' ? tokens.component.emptyState.illustration.small :\n $size === 'large' ? tokens.component.emptyState.illustration.large :\n tokens.component.emptyState.illustration.medium\n };\n height: ${({ $size }) =>\n $size === 'small' ? tokens.component.emptyState.illustration.small :\n $size === 'large' ? tokens.component.emptyState.illustration.large :\n tokens.component.emptyState.illustration.medium\n };\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: ${semantic.space[600]};\n color: ${({ $variant }) =>\n $variant === 'error' ? semantic.color.icon.danger :\n $variant === 'success' ? semantic.color.icon.success :\n semantic.color.icon.muted\n };\n`\n\nconst StyledTextContainer = styled.div`\n max-width: ${tokens.component.emptyState.text.maxWidth};\n margin-bottom: ${semantic.space[600]};\n`\n\n// Map illustration type to icon name\nconst illustrationToIcon: Record<Exclude<EmptyStateIllustration, 'custom'>, IconName> = {\n search: 'search',\n transactions: 'paper', // Placeholder - will use custom icon when available\n notifications: 'bell',\n empty: 'paper',\n error: 'crossCircle'\n}\n\nexport const EmptyState: React.FC<EmptyStateProps> = ({\n illustration = 'empty',\n customIllustration,\n title,\n description,\n action,\n secondaryAction,\n variant = 'default',\n size = 'medium',\n 'data-testid': dataTestId\n}) => {\n // Determine what to show for illustration\n const renderIllustration = () => {\n if (customIllustration) {\n return customIllustration\n }\n \n if (illustration !== 'custom') {\n const iconName = illustrationToIcon[illustration]\n return <Icon name={iconName} size=\"2xl\" />\n }\n \n return null\n }\n\n return (\n <StyledContainer \n $size={size}\n data-testid={dataTestId}\n role=\"status\"\n aria-label={`Empty state: ${title}`}\n >\n <StyledIllustration $size={size} $variant={variant} aria-hidden=\"true\">\n {renderIllustration()}\n </StyledIllustration>\n\n <StyledTextContainer>\n <Typography \n variant={size === 'small' ? 'h4' : size === 'large' ? 'h2' : 'h3'}\n color={variant === 'error' ? 'error' : 'default'}\n as={size === 'small' ? 'h4' : size === 'large' ? 'h2' : 'h3'}\n >\n {title}\n </Typography>\n \n <div style={{ marginTop: semantic.space[300] }}>\n <Typography variant=\"body\" color=\"subdued\">\n {description}\n </Typography>\n </div>\n </StyledTextContainer>\n\n {(action || secondaryAction) && (\n <Box width=\"100%\" maxWidth={tokens.component.emptyState.actions.maxWidth}>\n <Stack direction=\"column\" gap=\"sm\">\n {action && (\n <Button\n variant={action.variant || 'primary'}\n onClick={action.onClick}\n iconName={action.icon}\n data-testid={dataTestId ? `${dataTestId}-primary-action` : undefined}\n >\n {action.label}\n </Button>\n )}\n \n {secondaryAction && (\n <Button\n variant=\"naked\"\n onClick={secondaryAction.onClick}\n data-testid={dataTestId ? `${dataTestId}-secondary-action` : undefined}\n >\n {secondaryAction.label}\n </Button>\n )}\n </Stack>\n </Box>\n )}\n </StyledContainer>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Chip } from '../../atoms/Chip'\nimport { Button } from '../../atoms/Button'\nimport { Picture } from '../../atoms/Picture'\nimport { Divider } from '../../atoms/Divider'\nimport { Stack } from '../../atoms/Stack'\nimport { Typography } from '../../atoms/Typography'\nimport { DateFormatter } from '../../atoms/DateFormatter'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic: { space } } = tokens\n\nexport type FeatureBlockProps = {\n title: string\n excerpt: string\n labels: string[]\n coverImage: string\n date: string\n onReadMore?: () => void\n readMoreHref?: string\n readMoreText?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\nconst FeatureBlockStyled = styled.div`\n @media (min-width: ${tokens.semantic.breakpoint.md}) {\n display: grid;\n grid-template-columns: repeat(12, 1fr);\n }\n\n @media (min-width: ${tokens.semantic.breakpoint.lg}) {\n gap: ${space[1200]};\n }\n\n /* The image isn't clickable, so it doesn't answer hover (issue 185, P5) */\n img {\n border-radius: ${tokens.semantic.radius['2xl']};\n }\n\n a {\n text-decoration: none;\n }\n`\n\nconst ImageWrapper = styled.div`\n grid-column: span 12;\n\n @media (min-width: ${tokens.semantic.breakpoint.lg}) {\n grid-column: span 6;\n }\n`\n\nconst ContentSection = styled.div`\n grid-column: span 12;\n margin-top: ${space[600]};\n\n @media (min-width: ${tokens.semantic.breakpoint.lg}) {\n grid-column: span 6;\n margin-top: 0;\n padding-right: ${space[800]};\n }\n\n @media (min-width: ${tokens.semantic.breakpoint.xl}) {\n padding-right: ${space[2400]};\n }\n`\n\nconst ButtonWrapper = styled.div`\n button {\n margin-top: ${space[400]};\n }\n`\n\nconst ContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100%;\n`\n\n\n\nexport const FeatureBlock: React.FC<FeatureBlockProps> = ({\n title,\n excerpt,\n labels = [],\n coverImage,\n date,\n onReadMore,\n readMoreHref,\n readMoreText = \"Read more\",\n 'data-testid': dataTestId,\n}) => {\n return (\n <>\n <FeatureBlockStyled data-testid={dataTestId}>\n <ImageWrapper>\n <Picture title={title} src={coverImage} />\n </ImageWrapper>\n <ContentSection>\n <ContentWrapper>\n <Stack direction=\"column\" gap=\"md\">\n <Typography variant=\"h3\">{title}</Typography>\n <DateFormatter dateString={date} />\n <Typography variant=\"small\">{excerpt}</Typography>\n <Stack direction=\"row\" gap=\"xs\">\n {Array.isArray(labels) && labels.map((label, index) => (\n <Chip key={index} title={label} variant=\"default\" />\n ))}\n </Stack>\n {(onReadMore || readMoreHref) && (\n <ButtonWrapper>\n {readMoreHref ? (\n <Button purpose=\"link\" url={readMoreHref}>\n {readMoreText}\n </Button>\n ) : (\n <Button onClick={onReadMore}>\n {readMoreText}\n </Button>\n )}\n </ButtonWrapper>\n )}\n </Stack>\n </ContentWrapper>\n </ContentSection>\n </FeatureBlockStyled>\n <Divider />\n </>\n )\n}\n","import React, { useState, useRef, useEffect, useId } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { Icon } from '../../atoms/Icon'\nimport { Typography } from '../../atoms/Typography'\nimport { interactiveRow, reducedMotion } from '../../../lib/styleUtils'\n\nconst { semantic: { border, elevation, motion, space }, component: { input, field } } = tokens\n\n// Spacing comes from the semantic scales: no component spacing tokens (decision 0022).\n// The trigger and options take their height from size.control.lg as a minimum and centre\n// their content (decision 0034). The small vertical padding only matters when a long\n// label wraps; a single line is shorter than the minimum.\nconst controlPaddingX = tokens.semantic.space.inset.lg\nconst controlPaddingY = space[200]\nconst controlHeight = tokens.semantic.size.control.lg\nconst { duration, easing } = motion\n\ninterface DropdownOption {\n id: string\n label: string\n value?: any\n}\n\nexport interface DropdownProps {\n options: DropdownOption[]\n value: string\n onChange: (value: string) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n label?: string\n helperText?: string\n error?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\nconst DropdownContainer = styled.div`\n position: relative;\n width: 100%;\n`\n\nconst DropdownTrigger = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isOpen: boolean; $hasError?: boolean }>`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box; /* the min-height includes the border, without relying on a global reset */\n min-height: ${controlHeight};\n padding: ${controlPaddingY} ${controlPaddingX};\n background-color: ${input.default.backgroundColor};\n border: ${input.default.borderWidth} solid ${({ $hasError }) =>\n $hasError ? input.error.borderColor : input.default.borderColor\n };\n border-radius: ${input.default.borderRadius};\n font: ${input.default.font};\n color: ${input.default.textColor};\n cursor: pointer;\n transition: border-color ${duration.moderate} ${easing.standard},\n outline ${duration.moderate} ${easing.standard};\n \n &:hover:not(:disabled) {\n border-color: ${({ $hasError }) =>\n $hasError ? input.error.hover.borderColor : input.hover.borderColor\n };\n }\n \n &:focus {\n border-color: ${({ $hasError }) =>\n $hasError ? input.error.focus.borderColor : input.focus.borderColor\n };\n outline: ${input.focus.outline};\n outline-offset: ${border.focusOffset};\n }\n \n &:disabled {\n background-color: ${input.disabled.backgroundColor};\n color: ${input.disabled.textColor};\n border-color: ${input.disabled.borderColor};\n cursor: not-allowed;\n }\n \n ${({ $isOpen, $hasError }) => $isOpen && `\n border-color: ${$hasError ? input.error.focus.borderColor : input.focus.borderColor};\n `}\n`\n\nconst DropdownIcon = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isOpen: boolean }>`\n display: flex;\n align-items: center;\n margin-left: ${space[200]};\n transition: transform ${duration.fast} ${easing.decelerate};\n \n ${({ $isOpen }) => $isOpen && `\n transform: rotate(180deg);\n `}\n\n ${reducedMotion} {\n transition: none;\n }\n`\n\nconst DropdownMenu = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isOpen: boolean }>`\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: ${tokens.semantic.layer.dropdown};\n background-color: ${input.default.backgroundColor};\n /* A decorative outline: elevation separates the menu, and only the trigger is a control edge (decision 0025) */\n border: ${border.default};\n border-radius: ${input.default.borderRadius};\n box-shadow: ${elevation.floating};\n margin-top: ${space[100]};\n overflow: hidden;\n opacity: ${({ $isOpen }) => ($isOpen ? 1 : 0)};\n visibility: ${({ $isOpen }) => ($isOpen ? 'visible' : 'hidden')};\n transform: ${({ $isOpen }) => ($isOpen ? 'translateY(0)' : `translateY(calc(-1 * ${tokens.semantic.motion.distance.sm}))`)};\n transition: opacity ${duration.fast} ${easing.decelerate},\n visibility ${duration.fast} ${easing.decelerate},\n transform ${duration.fast} ${easing.decelerate};\n max-height: ${tokens.semantic.size.menu.maxHeight};\n overflow-y: auto;\n\n ${reducedMotion} {\n transform: none;\n }\n`\n\nconst DropdownOption = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isSelected: boolean; $isFocused: boolean }>`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${space[200]};\n box-sizing: border-box; /* the min-height includes the border, without relying on a global reset */\n min-height: ${controlHeight};\n padding: ${controlPaddingY} ${controlPaddingX};\n border: none;\n font: ${input.default.font};\n color: ${input.default.textColor};\n text-align: left;\n cursor: pointer;\n transition: background-color ${duration.fast} ${easing.decelerate}, color ${duration.fast} ${easing.decelerate};\n\n /* The shared row states (decisions 0029, 0030): focus shows the hover state in grey; only the\n selected option is light blue, with its text darkening with the fill */\n ${({ $isSelected, $isFocused }) => interactiveRow({ selected: $isSelected, focused: $isFocused })}\n \n &:focus {\n outline: none;\n }\n \n &:not(:last-child) {\n border-bottom: ${border.default};\n }\n`\n\nconst StyledHelperText = styled.div<{ $hasError?: boolean }>`\n font: ${field.helperText.typography};\n color: ${({ $hasError }) =>\n $hasError\n ? field.helperText.colorError\n : field.helperText.color\n };\n margin-top: ${space[200]};\n`\n\n\nexport const Dropdown: React.FC<DropdownProps> = ({\n options,\n value,\n onChange,\n placeholder = 'Select an option',\n disabled = false,\n className,\n label,\n helperText,\n error,\n 'data-testid': dataTestId\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n const [focusedIndex, setFocusedIndex] = useState(-1)\n const dropdownRef = useRef<HTMLDivElement>(null)\n \n // Generate unique ID for accessibility (SSR-safe)\n const dropdownId = useId()\n \n const selectedOption = options.find(option => option.id === value)\n \n const hasError = Boolean(error)\n const errorId = error ? `${dropdownId}-error` : undefined\n const helperId = helperText && !error ? `${dropdownId}-helper` : undefined\n const describedBy = [errorId, helperId].filter(Boolean).join(' ') || undefined\n\n \n // Close dropdown when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false)\n }\n }\n \n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }, [])\n \n // Close dropdown on escape key and handle arrow navigation\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (!isOpen) return\n\n switch (event.key) {\n case 'Escape':\n setIsOpen(false)\n setFocusedIndex(-1)\n // Return focus to trigger button\n if (dropdownRef.current) {\n const trigger = dropdownRef.current.querySelector('button') as HTMLButtonElement\n trigger?.focus()\n }\n break\n \n case 'ArrowDown':\n event.preventDefault()\n setFocusedIndex(prev => {\n const newIndex = prev < options.length - 1 ? prev + 1 : 0\n return newIndex\n })\n break\n \n case 'ArrowUp':\n event.preventDefault()\n setFocusedIndex(prev => {\n const newIndex = prev > 0 ? prev - 1 : options.length - 1\n return newIndex\n })\n break\n \n case 'Enter':\n case ' ':\n event.preventDefault()\n if (focusedIndex >= 0 && focusedIndex < options.length) {\n handleOptionClick(options[focusedIndex].id)\n }\n break\n \n case 'Home':\n event.preventDefault()\n setFocusedIndex(0)\n break\n \n case 'End':\n event.preventDefault()\n setFocusedIndex(options.length - 1)\n break\n }\n }\n \n if (isOpen) {\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }\n \n return undefined\n }, [isOpen, focusedIndex, options])\n \n const handleTriggerClick = () => {\n if (!disabled) {\n setIsOpen(!isOpen)\n if (!isOpen) {\n // When opening, set focus to the currently selected option or first option\n const selectedIndex = options.findIndex(option => option.id === value)\n setFocusedIndex(selectedIndex >= 0 ? selectedIndex : 0)\n } else {\n // When closing, reset focus\n setFocusedIndex(-1)\n }\n }\n }\n \n const handleOptionClick = (optionId: string) => {\n onChange(optionId)\n setIsOpen(false)\n setFocusedIndex(-1)\n }\n \n return (\n <DropdownContainer ref={dropdownRef} className={className} data-testid={dataTestId}>\n {label && (\n <label htmlFor={dropdownId} style={{ display: 'block', marginBottom: space[200] }}>\n <Typography variant=\"label\">{label}</Typography>\n </label>\n )}\n <DropdownTrigger\n id={dropdownId}\n $isOpen={isOpen}\n $hasError={hasError}\n onClick={handleTriggerClick}\n disabled={disabled}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-invalid={hasError}\n aria-describedby={describedBy}\n >\n <span>{selectedOption ? selectedOption.label : placeholder}</span>\n <DropdownIcon $isOpen={isOpen}>\n <Icon name=\"arrowDown\" iconColor={disabled ? 'disabled' : 'subdued'} />\n </DropdownIcon>\n </DropdownTrigger>\n \n <DropdownMenu $isOpen={isOpen} role=\"listbox\" aria-labelledby={dropdownId}>{options.map((option, index) => (\n <DropdownOption\n key={option.id}\n $isSelected={option.id === value}\n $isFocused={index === focusedIndex}\n onClick={() => handleOptionClick(option.id)}\n role=\"option\"\n aria-selected={option.id === value}\n >\n {option.label}\n {/* The selected state isn't conveyed by colour alone (P2); aria-selected carries it for\n assistive technology, so the checkmark is decorative */}\n {option.id === value && <Icon name=\"check\" size=\"sm\" iconColor=\"inherit\" />}\n </DropdownOption>\n ))}\n </DropdownMenu>\n \n {error && (\n <StyledHelperText\n id={errorId}\n role=\"alert\"\n aria-live=\"polite\"\n $hasError={true}\n >\n {error}\n </StyledHelperText>\n )}\n \n {helperText && !error && (\n <StyledHelperText id={helperId}>\n {helperText}\n </StyledHelperText>\n )}\n </DropdownContainer>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { ListSpacingContext, type ListSpacing } from './ListContext'\n\nconst { semantic } = tokens\n\nexport interface ListProps {\n /**\n * ListItem components\n */\n children: React.ReactNode\n \n /**\n * Show dividers between items\n * @default true\n */\n dividers?: boolean\n \n /**\n * Density of the list's items: their padding. A ListItem's own `spacing` overrides it (#77).\n * @default 'comfortable'\n * @deprecated Set density on a region with `data-co-density` instead: rows follow it (P9,\n * decision 0051). `spacing` still sets the padding, but not the height, until it's removed in 4.0.\n */\n spacing?: ListSpacing\n \n /**\n * Additional CSS class name\n */\n className?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\nconst StyledList = styled.ul.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $dividers: boolean\n}>`\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n \n /* Divider styles */\n ${({ $dividers }) => $dividers && `\n > li:not(:last-child) {\n border-bottom: ${semantic.border.width.thin} solid ${semantic.color.border.default};\n }\n `}\n`\n\nexport const List = ({\n children,\n dividers = true,\n spacing = 'comfortable',\n className,\n 'data-testid': dataTestId,\n ...props\n}: ListProps) => {\n return (\n <ListSpacingContext.Provider value={spacing}>\n <StyledList\n $dividers={dividers}\n className={className}\n data-testid={dataTestId}\n role=\"list\"\n {...props}\n >\n {children}\n </StyledList>\n </ListSpacingContext.Provider>\n )\n}\n\nList.displayName = 'List'\n","import React, { createContext, useCallback, useContext, useEffect, useId, useRef, useState } from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { exitAnimation, forcedColorsEdge, interactiveRow, reducedMotion } from '../../../lib/styleUtils'\nimport { usePresence } from '../../../lib/usePresence'\nimport { laidOutElement, type FloatingAlign, type FloatingSide } from '../../../lib/floatingPosition'\nimport { useFloatingLayer, useIsomorphicLayoutEffect } from '../../../lib/useFloatingLayer'\nimport { Icon } from '../../atoms/Icon'\n\nconst { semantic } = tokens\nconst { space, color, motion, radius, size, elevation, border, typography } = semantic\n\n// Typeahead keeps typed characters together for this long. An input timing, not a motion value.\nconst TYPEAHEAD_RESET_MS = 500\n\nconst ITEM_SELECTOR = '[role=\"menuitem\"], [role=\"menuitemradio\"], [role=\"menuitemcheckbox\"]'\n\ninterface MenuContextValue {\n close: (options?: { returnFocus?: boolean }) => void\n}\n\nconst MenuContext = createContext<MenuContextValue | null>(null)\n\nconst useMenu = (component: string) => {\n const context = useContext(MenuContext)\n if (!context) throw new Error(`${component} must be used inside a Menu`)\n return context\n}\n\nexport type MenuSide = FloatingSide\nexport type MenuAlign = FloatingAlign\n\nexport interface MenuProps {\n /**\n * The element that opens the menu, such as a Button or IconButton. Menu gives it\n * `aria-haspopup`, `aria-expanded` and `aria-controls`, and the menu takes its name from it.\n */\n trigger: React.ReactElement\n /** `MenuItem`, `MenuItemRadio`, `MenuItemCheckbox`, `MenuGroup` and `MenuDivider` */\n children: React.ReactNode\n /** Whether the menu is open (controlled). Use with `onOpenChange`. */\n open?: boolean\n /**\n * Whether the menu starts open (uncontrolled).\n * @default false\n */\n defaultOpen?: boolean\n /** Called when the menu opens or closes */\n onOpenChange?: (open: boolean) => void\n /**\n * The side of the trigger it opens on. It flips when there's no room.\n * @default 'bottom'\n */\n side?: MenuSide\n /**\n * Where it lines up along the trigger's edge.\n * @default 'start'\n */\n align?: MenuAlign\n /** Test identifier for the menu */\n 'data-testid'?: string\n}\n\nconst enter = keyframes`\n from {\n opacity: 0;\n transform: translateY(calc(-1 * ${motion.distance.sm}));\n }\n`\n\nconst fade = keyframes`\n from { opacity: 0; }\n`\n\n// Dropdown's panel (P5): the raised surface with a decorative outline and floating elevation,\n// dropping in over duration.fast (0037); under reduced motion it only fades (0015)\nconst Panel = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $exiting: boolean }>`\n position: fixed;\n inset: auto;\n top: 0;\n left: 0;\n margin: 0;\n box-sizing: border-box;\n min-width: ${size[4500]};\n max-width: ${size[7500]};\n max-height: ${size.menu.maxHeight};\n overflow-y: auto;\n padding: ${space[100]} 0;\n background-color: ${semantic.surface.raised};\n color: ${color.text.default};\n border: ${border.default};\n border-radius: ${radius.md};\n box-shadow: ${elevation.floating};\n animation: ${enter} ${motion.duration.fast} ${motion.easing.decelerate}\n ${({ $exiting }) => ($exiting ? exitAnimation : css``)};\n\n ${reducedMotion} {\n animation: ${fade} ${motion.duration.fast} ${motion.easing.decelerate}\n ${({ $exiting }) => ($exiting ? exitAnimation : css``)};\n }\n\n ${forcedColorsEdge}\n\n &:focus {\n outline: none;\n }\n`\n\n// The trigger's wrapper takes no box of its own\nconst Anchor = styled.span`\n display: contents;\n`\n\nconst focusItem = (menu: HTMLElement | null, which: 'first' | 'last') => {\n const items = menu ? Array.from(menu.querySelectorAll<HTMLElement>(ITEM_SELECTOR)) : []\n ;(which === 'first' ? items[0] : items[items.length - 1])?.focus()\n}\n\n/**\n * A menu of actions and choices that opens from a trigger (#329), following the WAI-ARIA menu\n * button pattern. Not a select: for choosing a form value, use Dropdown.\n */\nexport const Menu = ({\n trigger,\n children,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n side = 'bottom',\n align = 'start',\n 'data-testid': dataTestId,\n}: MenuProps) => {\n const menuId = useId()\n const triggerId = useId()\n const anchorRef = useRef<HTMLSpanElement>(null)\n const panelRef = useRef<HTMLDivElement>(null)\n // Which item to focus once the menu has opened\n const initialFocus = useRef<'first' | 'last'>('first')\n const openedFromTrigger = useRef(false)\n const typeahead = useRef({ text: '', timer: undefined as ReturnType<typeof setTimeout> | undefined })\n\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen)\n const isControlled = openProp !== undefined\n const isOpen = isControlled ? openProp : uncontrolledOpen\n const { isPresent, isExiting } = usePresence(isOpen)\n\n const triggerElement = () => laidOutElement(anchorRef.current) as HTMLElement | null\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (!isControlled) setUncontrolledOpen(next)\n onOpenChange?.(next)\n },\n [isControlled, onOpenChange]\n )\n\n const close = useCallback(\n ({ returnFocus = true }: { returnFocus?: boolean } = {}) => {\n setOpen(false)\n if (returnFocus) triggerElement()?.focus()\n },\n [setOpen]\n )\n\n const openWith = (focus: 'first' | 'last') => {\n initialFocus.current = focus\n openedFromTrigger.current = true\n setOpen(true)\n }\n\n // The trigger's ARIA is set on the element itself, so it reaches the real control even when the\n // trigger is wrapped (a Tooltip inside the trigger, for example)\n useEffect(() => {\n const element = triggerElement()\n if (!element) return\n if (!element.id) element.id = triggerId\n element.setAttribute('aria-haspopup', 'menu')\n element.setAttribute('aria-expanded', String(isOpen))\n if (isOpen) element.setAttribute('aria-controls', menuId)\n else element.removeAttribute('aria-controls')\n })\n\n // The menu is named by its trigger, whose own id is kept if it has one\n useIsomorphicLayoutEffect(() => {\n const panel = panelRef.current\n const element = triggerElement()\n if (!isPresent || !panel || !element) return\n if (!element.id) element.id = triggerId\n panel.setAttribute('aria-labelledby', element.id)\n }, [isPresent])\n\n // In the top layer beside the trigger; scrolling or resizing closes it, since the trigger moves\n const detach = useCallback(() => close({ returnFocus: false }), [close])\n useFloatingLayer({ isPresent, floatingRef: panelRef, anchorRef, side, align, onDetach: detach })\n\n // Opening from the trigger focuses the first or last item. An open that didn't come from the\n // trigger (defaultOpen, or a controlled open) leaves focus where it is\n useEffect(() => {\n if (!isOpen || !openedFromTrigger.current) return\n openedFromTrigger.current = false\n focusItem(panelRef.current, initialFocus.current)\n }, [isOpen])\n\n // A press outside the trigger and the menu closes it, leaving focus where the press put it\n useEffect(() => {\n if (!isOpen) return\n const onPointerDown = (event: PointerEvent) => {\n const target = event.target as Node\n if (panelRef.current?.contains(target) || anchorRef.current?.contains(target)) return\n close({ returnFocus: false })\n }\n document.addEventListener('pointerdown', onPointerDown, true)\n return () => document.removeEventListener('pointerdown', onPointerDown, true)\n }, [isOpen, close])\n\n useEffect(() => () => clearTimeout(typeahead.current.timer), [])\n\n const onTriggerKeyDown = (event: React.KeyboardEvent) => {\n if (panelRef.current?.contains(event.target as Node)) return\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n openWith('first')\n } else if (event.key === 'ArrowUp') {\n event.preventDefault()\n openWith('last')\n }\n }\n\n const onTriggerClick = (event: React.MouseEvent) => {\n if (panelRef.current?.contains(event.target as Node)) return\n // A keyboard click (Enter, Space) is handled on keydown\n if (event.detail === 0) return\n if (isOpen) close({ returnFocus: false })\n else openWith('first')\n }\n\n const onMenuKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n const items = Array.from(event.currentTarget.querySelectorAll<HTMLElement>(ITEM_SELECTOR))\n const current = items.indexOf(document.activeElement as HTMLElement)\n const move = (index: number) => {\n event.preventDefault()\n items[(index + items.length) % items.length]?.focus()\n }\n switch (event.key) {\n case 'ArrowDown': return move(current + 1)\n case 'ArrowUp': return move(current - 1)\n case 'Home': return move(0)\n case 'End': return move(items.length - 1)\n case 'Escape':\n event.preventDefault()\n event.stopPropagation()\n return close()\n case 'Tab':\n // Focus moves on to the next element after the trigger, and the menu closes\n return close({ returnFocus: false })\n default:\n if (event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey && event.key !== ' ') {\n const state = typeahead.current\n clearTimeout(state.timer)\n state.text += event.key.toLowerCase()\n state.timer = setTimeout(() => { state.text = '' }, TYPEAHEAD_RESET_MS)\n // The label alone: not a leading Avatar's initials, the description or the shortcut\n const label = (item: HTMLElement) =>\n (item.dataset.label ?? item.querySelector('[data-menu-label]')?.textContent ?? '').trim().toLowerCase()\n const ordered = [...items.slice(current + 1), ...items.slice(0, current + 1)]\n const search = state.text.length > 1 ? [items[current], ...ordered] : ordered\n search.find((item) => item && label(item).startsWith(state.text))?.focus()\n }\n }\n }\n\n return (\n <MenuContext.Provider value={{ close }}>\n <Anchor ref={anchorRef} onKeyDown={onTriggerKeyDown} onClick={onTriggerClick}>\n {trigger}\n {isPresent && (\n <Panel\n ref={panelRef}\n id={menuId}\n role=\"menu\"\n tabIndex={-1}\n $exiting={isExiting}\n onKeyDown={onMenuKeyDown}\n data-testid={dataTestId}\n >\n {children}\n </Panel>\n )}\n </Anchor>\n </MenuContext.Provider>\n )\n}\n\nMenu.displayName = 'Menu'\n\n// ---------------------------------------------------------------------------------------------\n// Items\n\ninterface ItemBaseProps {\n /** The item's label */\n children: React.ReactNode\n /** A leading Icon or Avatar. Decorative: the label names the item (decision 0028). */\n icon?: React.ReactNode\n /** Secondary text under the label, such as a workspace's plan */\n description?: React.ReactNode\n /**\n * A keyboard shortcut shown at the end of the item: `label` is shown (such as \"⌘K\") and `keys` is\n * exposed as `aria-keyshortcuts` (such as \"Meta+K\"). Display only: Menu doesn't bind the keys.\n */\n shortcut?: { label: string; keys: string }\n /** Whether the item can be activated. A disabled item can still be focused (WAI-ARIA). */\n disabled?: boolean\n /** Text for typeahead, when the label isn't plain text */\n textValue?: string\n /** Test identifier for the item */\n 'data-testid'?: string\n}\n\nexport interface MenuItemProps extends ItemBaseProps {\n /** Called when the item is activated. The menu then closes. */\n onSelect?: () => void\n /**\n * A destructive action, shown in the danger colour as ActionSheet's are.\n * @default false\n */\n destructive?: boolean\n}\n\nexport interface MenuItemRadioProps extends ItemBaseProps {\n /** Whether this is the chosen item of its group */\n checked: boolean\n /** Called when the item is chosen. The menu then closes. */\n onSelect?: () => void\n}\n\nexport interface MenuItemCheckboxProps extends ItemBaseProps {\n /** Whether the item is on */\n checked: boolean\n /** Called with the new state when the item is toggled. The menu stays open. */\n onCheckedChange?: (checked: boolean) => void\n}\n\nconst Row = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $checked: boolean; $focused: boolean; $disabled: boolean; $destructive: boolean }>`\n display: flex;\n align-items: center;\n gap: ${space[200]};\n box-sizing: border-box;\n min-height: ${size.row.sm};\n padding: ${space.inset.xs} ${space.inset.md};\n font: ${typography.small};\n color: ${({ $destructive }) => ($destructive ? color.text.danger : color.text.default)};\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n user-select: none;\n transition: background-color ${motion.duration.fast} ${motion.easing.decelerate},\n color ${motion.duration.fast} ${motion.easing.decelerate};\n\n /* The shared row states (0030): focus shows the hover state (0029); only checked items are\n light blue, with the checkmark so the state isn't colour alone */\n ${({ $checked, $focused, $disabled }) => interactiveRow({ selected: $checked, focused: $focused, disabled: $disabled })}\n\n ${({ $disabled }) => $disabled && css`color: ${color.text.disabled};`}\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: ${border.focus};\n outline-offset: calc(-1 * ${border.focusOffset});\n }\n`\n\nconst Leading = styled.span`\n display: inline-flex;\n flex-shrink: 0;\n`\n\nconst Text = styled.span`\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n`\n\nconst Description = styled.span`\n font: ${typography.caption};\n color: ${color.text.muted};\n`\n\nconst Shortcut = styled.span`\n flex-shrink: 0;\n font: ${typography.caption};\n color: ${color.text.muted};\n`\n\nconst Check = styled.span`\n display: inline-flex;\n flex-shrink: 0;\n color: inherit;\n`\n\ninterface RowItemProps extends ItemBaseProps {\n role: 'menuitem' | 'menuitemradio' | 'menuitemcheckbox'\n checked?: boolean\n destructive?: boolean\n onActivate: () => void\n}\n\nconst RowItem = ({\n role,\n children,\n icon,\n description,\n shortcut,\n disabled = false,\n destructive = false,\n checked,\n textValue,\n onActivate,\n 'data-testid': dataTestId,\n}: RowItemProps) => {\n const [focused, setFocused] = useState(false)\n const checkable = role !== 'menuitem'\n\n const activate = () => {\n if (!disabled) onActivate()\n }\n\n return (\n <Row\n role={role}\n tabIndex={-1}\n aria-disabled={disabled || undefined}\n aria-checked={checkable ? Boolean(checked) : undefined}\n aria-keyshortcuts={shortcut?.keys}\n data-label={textValue}\n data-testid={dataTestId}\n $checked={Boolean(checked)}\n $focused={focused}\n $disabled={disabled}\n $destructive={destructive}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n onPointerMove={(event) => {\n // The pointer moves focus, so hover and keyboard share one highlighted item\n if (document.activeElement !== event.currentTarget) event.currentTarget.focus()\n }}\n onClick={activate}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n activate()\n }\n }}\n >\n {icon && <Leading aria-hidden=\"true\">{icon}</Leading>}\n <Text>\n <span data-menu-label=\"\">{children}</span>\n {description && <Description>{description}</Description>}\n </Text>\n {shortcut && <Shortcut aria-hidden=\"true\">{shortcut.label}</Shortcut>}\n {checkable && checked && (\n <Check>\n <Icon name=\"check\" size=\"sm\" iconColor=\"inherit\" />\n </Check>\n )}\n </Row>\n )\n}\n\n/** An action. Activating it closes the menu. */\nexport const MenuItem = ({ onSelect, ...props }: MenuItemProps) => {\n const { close } = useMenu('MenuItem')\n return (\n <RowItem\n role=\"menuitem\"\n {...props}\n onActivate={() => {\n close()\n onSelect?.()\n }}\n />\n )\n}\n\n/** One choice of a set, inside a MenuGroup. Choosing it closes the menu. */\nexport const MenuItemRadio = ({ onSelect, checked, ...props }: MenuItemRadioProps) => {\n const { close } = useMenu('MenuItemRadio')\n return (\n <RowItem\n role=\"menuitemradio\"\n checked={checked}\n {...props}\n onActivate={() => {\n close()\n onSelect?.()\n }}\n />\n )\n}\n\n/** An on/off option, inside a MenuGroup. Toggling it keeps the menu open. */\nexport const MenuItemCheckbox = ({ onCheckedChange, checked, ...props }: MenuItemCheckboxProps) => {\n useMenu('MenuItemCheckbox')\n return <RowItem role=\"menuitemcheckbox\" checked={checked} {...props} onActivate={() => onCheckedChange?.(!checked)} />\n}\n\n// ---------------------------------------------------------------------------------------------\n// Structure\n\nexport interface MenuGroupProps {\n /** A visible label for the group, which also names it for assistive technology */\n label?: string\n /** The group's items */\n children: React.ReactNode\n}\n\nconst GroupLabel = styled.div`\n padding: ${space.inset.xs} ${space.inset.md};\n font: ${typography.caption};\n color: ${color.text.muted};\n`\n\n/** Groups related items. Radio and checkbox items always sit in a group. */\nexport const MenuGroup = ({ label, children }: MenuGroupProps) => {\n const labelId = useId()\n return (\n <div role=\"group\" aria-labelledby={label ? labelId : undefined}>\n {label && (\n <GroupLabel id={labelId} aria-hidden=\"true\">\n {label}\n </GroupLabel>\n )}\n {children}\n </div>\n )\n}\n\n// Divider's smallest spacing (16px each side) is too loose between dense rows, so the menu draws\n// its own 1px rule with the decorative border\nconst Separator = styled.div`\n margin: ${space[100]} 0;\n border-top: ${border.default};\n`\n\n/** Separates groups */\nexport const MenuDivider = () => <Separator role=\"separator\" aria-orientation=\"horizontal\" />\n\nMenuItem.displayName = 'MenuItem'\nMenuItemRadio.displayName = 'MenuItemRadio'\nMenuItemCheckbox.displayName = 'MenuItemCheckbox'\nMenuGroup.displayName = 'MenuGroup'\nMenuDivider.displayName = 'MenuDivider'\n","import { createContext, useContext, type ComponentType } from 'react'\n\n// What SidebarNav (#331) tells the rows and sections inside it. Outside a SidebarNav, the\n// defaults apply: expanded, plain links, and each row's own hover colour.\nexport interface SidebarNavContextValue {\n /** The nav is the icon rail: rows show their icon only */\n collapsed: boolean\n /** A router's link component for internal URLs, set once on SidebarNav (decision 0008) */\n linkComponent?: ComponentType<any> // eslint-disable-line @typescript-eslint/no-explicit-any\n /** SidebarNav draws one gliding hover highlight, so rows don't colour their own hover (0053) */\n glide: boolean\n /** Inside a SidebarNav, whose body is one list: a section is one of its items */\n inNav?: boolean\n}\n\nexport const SidebarNavContext = createContext<SidebarNavContextValue>({ collapsed: false, glide: false })\n\nexport const useSidebarNav = () => useContext(SidebarNavContext)\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { interactiveRow } from '../../../lib/styleUtils'\nimport { Icon } from '../../atoms/Icon'\nimport { Tooltip } from '../../atoms/Tooltip'\nimport { Badge } from '../../atoms/Badge'\nimport type { IconName } from '../../../types/icons'\nimport { useSidebarNav } from './SidebarNavContext'\n\nconst { semantic } = tokens\nconst { space, color, motion, radius, size, border, typography } = semantic\n\nexport interface SidebarNavItemProps {\n /** The item's label. In the rail it becomes the accessible name and shows in a Tooltip. */\n label: string\n /** A leading icon. Items without one are hidden in the rail. */\n icon?: IconName\n /**\n * Where the item goes. With a `url` the item is a link (using SidebarNav's `linkComponent`\n * for internal URLs, decision 0008); without one it's a button for `onClick`.\n */\n url?: string\n /** Called when the item is activated. Without a `url`, the item is a button. */\n onClick?: (event: React.MouseEvent) => void\n /**\n * The page the user is on: `aria-current=\"page\"` and the light-blue selected treatment\n * (decisions 0016, 0030).\n * @default false\n */\n current?: boolean\n /** Quiet text at the end of the row, such as \"3/10\". Hidden in the rail. */\n meta?: string\n /**\n * New or unread items (decision 0045): a count, or `'dot'` for \"something new\". Shown as an\n * accent Badge on the icon, so it stays visible in the rail, and added to the item's name.\n */\n badge?: number | 'dot'\n /**\n * How the badge reads in the item's name, such as \"3 unread\".\n * @default \"{count} new\", or \"new\" for a dot\n */\n badgeLabel?: string\n /** Test identifier for the item's link or button */\n 'data-testid'?: string\n}\n\n// Anything without a scheme (https:, mailto:) or a protocol-relative start is the app's own URL,\n// relative ones included, so it goes through the router's link\nconst isInternalUrl = (url: string) => !/^[a-z][a-z\\d+.-]*:/i.test(url) && !url.startsWith('//')\n\nconst Row = styled.a.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $current: boolean; $glide: boolean; $collapsed: boolean }>`\n display: flex;\n align-items: center;\n gap: ${space[200]};\n box-sizing: border-box;\n width: 100%;\n /* The row's height is its token, with the content centred (as controls, 0034): vertical\n padding would hold a compact row above its 24px (0051) */\n min-height: ${size.row.sm};\n padding: 0 ${space.inset.sm};\n border: none;\n border-radius: ${radius.sm};\n background: none;\n font: ${typography.small};\n color: ${color.text.default};\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n transition: background-color ${motion.duration.fast} ${motion.easing.decelerate},\n color ${motion.duration.fast} ${motion.easing.decelerate};\n\n /* The shared row states (0030); the current page takes the light-blue selected ladder */\n ${({ $current }) => interactiveRow({ selected: $current })}\n\n /* Inside SidebarNav one highlight glides to the hovered row, so an unselected row stays clear\n underneath it; pressed and selected rows keep their own fills (0053) */\n ${({ $glide, $current }) =>\n $glide &&\n !$current &&\n css`\n &:hover:not(:active) {\n background-color: transparent;\n }\n `}\n\n ${({ $collapsed }) =>\n $collapsed &&\n css`\n justify-content: center;\n padding: 0 ${space.inset.xs};\n `}\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: ${border.focus};\n outline-offset: calc(-1 * ${border.focusOffset});\n }\n`\n\nconst Label = styled.span`\n flex: 1;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`\n\nconst Meta = styled.span`\n flex-shrink: 0;\n font: ${typography.caption};\n color: ${color.text.muted};\n`\n\n// A badge needs something to sit on: the icon, or this mark at the end of an item without one\nconst BadgeAnchor = styled.span`\n display: inline-flex;\n flex-shrink: 0;\n`\n\n/**\n * One row of a SidebarNav (#327): a link to a page, or a button for an action such as \"New chat\".\n * Renders an `li`, so it sits in SidebarNav's or a SidebarNavSection's list.\n */\nexport const SidebarNavItem = ({\n label,\n icon,\n url,\n onClick,\n current = false,\n meta,\n badge,\n badgeLabel,\n 'data-testid': dataTestId,\n}: SidebarNavItemProps) => {\n const { collapsed, linkComponent, glide } = useSidebarNav()\n\n // The rail shows icons only: an item without one has nothing to show there\n if (collapsed && !icon) return null\n\n const hasBadge = badge === 'dot' || (typeof badge === 'number' && badge > 0)\n const badgeText = badgeLabel ?? (badge === 'dot' ? 'new' : `${badge} new`)\n // The badge's own text would make a noisy name, so a badged item is named outright; so is an\n // item in the rail, where the label isn't shown\n const name = hasBadge ? `${label}, ${badgeText}` : collapsed ? label : undefined\n\n const withBadge = (anchor: React.ReactElement) =>\n hasBadge ? (\n <Badge variant=\"accent\" dot={badge === 'dot'} count={typeof badge === 'number' ? badge : 0} aria-label={badgeText}>\n {anchor}\n </Badge>\n ) : (\n anchor\n )\n\n const content = (\n <>\n {icon && withBadge(<Icon name={icon} size=\"md\" iconColor=\"inherit\" />)}\n {!collapsed && (\n <>\n <Label>{label}</Label>\n {meta && <Meta>{meta}</Meta>}\n {!icon && hasBadge && withBadge(<BadgeAnchor />)}\n </>\n )}\n </>\n )\n\n const shared = {\n $current: current,\n $glide: glide,\n $collapsed: collapsed,\n // The icon is decorative (0028)\n 'aria-label': name,\n 'data-testid': dataTestId,\n // SidebarNav's gliding highlight finds rows by this (0053)\n 'data-sidebar-row': '',\n onClick,\n }\n\n const row = url ? (\n <Row\n {...shared}\n {...(linkComponent && isInternalUrl(url) ? { as: linkComponent } : {})}\n href={url}\n aria-current={current ? 'page' : undefined}\n >\n {content}\n </Row>\n ) : (\n // aria-current=\"page\" marks a link to the current page; a button isn't one\n <Row {...shared} as=\"button\" type=\"button\">\n {content}\n </Row>\n )\n\n return (\n <li>\n {collapsed ? (\n <Tooltip text={label} side=\"right\">\n {row}\n </Tooltip>\n ) : (\n row\n )}\n </li>\n )\n}\n\nSidebarNavItem.displayName = 'SidebarNavItem'\n","import React, { useEffect, useId, useState } from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n// The clip timer needs the resolved duration, not its CSS variable (decision 0041)\n// eslint-disable-next-line no-restricted-imports\nimport tokenValues from '../../../styles/tokens.json'\nimport { interactiveRow, reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\nimport { Icon } from '../../atoms/Icon'\nimport { useSidebarNav } from '../SidebarNavItem/SidebarNavContext'\n\n// How long the items take to show or hide: the clip lifts after this even if no transition ran\n// (reduced motion, or a background tab)\nconst COLLAPSE_MS = parseInt(tokenValues.semantic.motion.duration.moderate, 10)\n\nconst { semantic } = tokens\nconst { space, color, motion, radius, size, border, typography } = semantic\n\nexport interface SidebarNavSectionProps {\n /** The section's visible label, which also names its list */\n label: string\n /** The section's `SidebarNavItem`s */\n children: React.ReactNode\n /**\n * Whether the label is a disclosure button that shows and hides the items.\n * @default false\n */\n collapsible?: boolean\n /** Whether the items are shown (controlled). Use with `onExpandedChange`. */\n expanded?: boolean\n /**\n * Whether the items start shown (uncontrolled).\n * @default true\n */\n defaultExpanded?: boolean\n /** Called when a collapsible section is shown or hidden */\n onExpandedChange?: (expanded: boolean) => void\n /**\n * One action for the section, such as an IconButton for \"New chat\" or \"Search\". Hidden in the\n * rail.\n */\n action?: React.ReactElement\n /** Test identifier for the section */\n 'data-testid'?: string\n}\n\nconst Section = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $collapsed: boolean }>`\n /* In the rail there's no label, so a rule separates sections */\n ${({ $collapsed }) =>\n $collapsed &&\n css`\n border-top: ${border.default};\n padding-top: ${space[100]};\n margin-top: ${space[100]};\n\n /* Nothing above to separate it from */\n &:first-child {\n border-top: none;\n padding-top: 0;\n margin-top: 0;\n }\n `}\n`\n\nconst Header = styled.div`\n display: flex;\n align-items: center;\n gap: ${space[100]};\n min-height: ${size.row.sm};\n`\n\n// The label's look: quiet, small and muted, so the items lead\nconst labelText = css`\n font: ${typography.caption};\n color: ${color.text.muted};\n`\n\nconst StaticLabel = styled.div`\n ${labelText}\n flex: 1;\n min-width: 0;\n padding: 0 ${space.inset.sm};\n`\n\nconst HiddenLabel = styled.div`\n ${visuallyHidden}\n`\n\nconst Disclosure = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $expanded: boolean }>`\n ${labelText}\n display: flex;\n align-items: center;\n gap: ${space[100]};\n flex: 1;\n min-width: 0;\n box-sizing: border-box;\n min-height: ${size.row.sm};\n padding: 0 ${space.inset.sm};\n border: none;\n border-radius: ${radius.sm};\n background: none;\n text-align: left;\n cursor: pointer;\n transition: background-color ${motion.duration.fast} ${motion.easing.decelerate};\n\n ${interactiveRow()}\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: ${border.focus};\n outline-offset: calc(-1 * ${border.focusOffset});\n }\n\n /* The caret points down when shown and right when hidden */\n & > span:first-child {\n transition: transform ${motion.duration.fast} ${motion.easing.standard};\n transform: rotate(${({ $expanded }) => ($expanded ? '0deg' : '-90deg')});\n }\n\n ${reducedMotion} {\n & > span:first-child {\n transition: none;\n }\n }\n`\n\n// The items' height animates from nothing to their own height with grid rows, so no\n// \"no limit\" max-height is needed. Once hidden, the items leave the keyboard and screen readers.\nconst Collapse = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $expanded: boolean }>`\n display: grid;\n grid-template-rows: ${({ $expanded }) => ($expanded ? '1fr' : '0fr')};\n visibility: ${({ $expanded }) => ($expanded ? 'visible' : 'hidden')};\n transition: grid-template-rows ${motion.duration.moderate} ${motion.easing.standard},\n visibility ${motion.duration.moderate} ${motion.easing.standard};\n\n ${reducedMotion} {\n transition: none;\n }\n`\n\n// Clipped only while hidden or moving: once shown, an item's Badge can overhang its row\nconst List = styled.ul.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $clip: boolean }>`\n min-height: 0;\n overflow: ${({ $clip }) => ($clip ? 'hidden' : 'visible')};\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n flex-direction: column;\n`\n\n/**\n * A labelled group of SidebarNavItems (#328), optionally collapsible, with one optional action.\n * In the rail its label and action are hidden and a rule separates it from the section above.\n */\nexport const SidebarNavSection = ({\n label,\n children,\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded = true,\n onExpandedChange,\n action,\n 'data-testid': dataTestId,\n}: SidebarNavSectionProps) => {\n const { collapsed, inNav } = useSidebarNav()\n const labelId = useId()\n const listId = useId()\n const [uncontrolledExpanded, setUncontrolledExpanded] = useState(defaultExpanded)\n const [animating, setAnimating] = useState(false)\n const isControlled = expandedProp !== undefined\n const userExpanded = isControlled ? expandedProp : uncontrolledExpanded\n // The rail has no disclosure button, so a section always shows its items there\n const expanded = !collapsible || collapsed || userExpanded\n\n useEffect(() => {\n if (!animating) return\n const timer = setTimeout(() => setAnimating(false), COLLAPSE_MS)\n return () => clearTimeout(timer)\n }, [animating])\n\n const toggle = () => {\n const next = !expanded\n setAnimating(true)\n if (!isControlled) setUncontrolledExpanded(next)\n onExpandedChange?.(next)\n }\n\n const header = collapsed ? (\n // The rail shows no label, but the list keeps its name\n <HiddenLabel id={labelId}>{label}</HiddenLabel>\n ) : (\n <Header>\n {collapsible ? (\n <Disclosure\n type=\"button\"\n id={labelId}\n aria-expanded={expanded}\n aria-controls={listId}\n $expanded={expanded}\n onClick={toggle}\n >\n <Icon name=\"caretDown\" size=\"sm\" iconColor=\"inherit\" />\n {label}\n </Disclosure>\n ) : (\n <StaticLabel id={labelId}>{label}</StaticLabel>\n )}\n {action}\n </Header>\n )\n\n return (\n // In a SidebarNav the body is one list, so the section is one of its items\n <Section as={inNav ? 'li' : 'div'} $collapsed={collapsed} data-testid={dataTestId}>\n {header}\n <Collapse\n $expanded={expanded}\n onTransitionEnd={(event) => {\n if (event.target === event.currentTarget && event.propertyName === 'grid-template-rows') setAnimating(false)\n }}\n >\n <List id={listId} aria-labelledby={labelId} $clip={!expanded || animating}>\n {children}\n </List>\n </Collapse>\n </Section>\n )\n}\n\nSidebarNavSection.displayName = 'SidebarNavSection'\n","import { useEffect, useRef, type ReactNode, type KeyboardEvent } from 'react'\nimport { createPortal } from 'react-dom'\nimport styled, { keyframes, css } from 'styled-components'\nimport { IconButton } from '../../atoms/IconButton'\nimport { Button, type ButtonVariant } from '../../atoms/Button'\nimport { Typography } from '../../atoms/Typography'\nimport { Stack } from '../../atoms/Stack'\nimport { Divider } from '../../atoms/Divider'\nimport { type IconName } from '../../../types/icons'\nimport tokens from '@/lib/cssTokens'\nimport { exitAnimation, reducedMotion } from '../../../lib/styleUtils'\nimport { useInert, usePresence } from '../../../lib/usePresence'\n\nconst { semantic } = tokens\nconst { space, color, elevation, motion } = semantic\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport type ModalSize = 'small' | 'medium' | 'large'\n\nexport interface ModalAction {\n /** Button label text */\n label: string\n /** Callback when the action is clicked */\n onClick: () => void\n /**\n * Button variant. `accent` is the blue call to action (at most one per view).\n */\n variant?: ButtonVariant\n /** Optional leading icon */\n icon?: IconName\n /** Whether the button is disabled */\n disabled?: boolean\n}\n\nexport interface ModalProps {\n /** Whether the modal is visible */\n isOpen: boolean\n\n /** Callback fired when the modal should close (close button, overlay, Escape) */\n onClose: () => void\n\n /** Title displayed in the modal header */\n title: string\n\n /** Body content of the modal */\n children: ReactNode\n\n /**\n * Width preset. All sizes auto-switch to fullscreen below the `md` breakpoint (768 px).\n * - small → 400 px\n * - medium → 560 px\n * - large → 720 px\n * @default 'medium'\n */\n size?: ModalSize\n\n /** Structured action buttons rendered in the footer */\n actions?: ModalAction[]\n\n /**\n * Close when the backdrop overlay is clicked\n * @default true\n */\n closeOnOverlayClick?: boolean\n\n /**\n * Close when the Escape key is pressed\n * @default true\n */\n closeOnEscape?: boolean\n\n /** Test identifier for automated testing */\n 'data-testid'?: string\n\n /** Accessible label – falls back to `title` */\n 'aria-label'?: string\n\n /** ID of an element that describes the modal */\n 'aria-describedby'?: string\n}\n\n// ---------------------------------------------------------------------------\n// Size map\n// ---------------------------------------------------------------------------\n\nconst sizeToWidth: Record<ModalSize, string> = {\n small: tokens.semantic.size.overlay.sm,\n medium: tokens.semantic.size.overlay.md,\n large: tokens.semantic.size.overlay.lg,\n}\n\n// ---------------------------------------------------------------------------\n// Animations\n// ---------------------------------------------------------------------------\n\nconst fadeIn = keyframes`\n from { opacity: 0; }\n to { opacity: 1; }\n`\n\nconst scaleIn = keyframes`\n from {\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n`\n\n// ---------------------------------------------------------------------------\n// Styled components\n// ---------------------------------------------------------------------------\n\nconst StyledOverlay = styled.div<{ $isExiting: boolean }>`\n position: fixed;\n inset: 0;\n background-color: ${semantic.surface.scrim};\n z-index: ${semantic.layer.modal};\n ${css<{ $isExiting: boolean }>`animation: ${fadeIn} ${motion.duration.moderate} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};`}\n`\n\nconst StyledDialog = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $width: string; $isExiting: boolean }>`\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) scale(1);\n z-index: ${semantic.layer.modal};\n\n width: ${({ $width }) => $width};\n max-width: calc(100vw - ${space[400]} * 2);\n max-height: calc(100vh - ${space[400]} * 2);\n\n display: flex;\n flex-direction: column;\n\n background-color: ${semantic.surface.raised};\n border-radius: ${semantic.radius.xl};\n box-shadow: ${elevation.overlay};\n overflow: hidden;\n\n ${css<{ $isExiting: boolean }>`animation: ${scaleIn} ${motion.duration.moderate} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};`}\n\n ${reducedMotion} {\n animation: ${fadeIn} ${motion.duration.moderate} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};\n }\n\n /* Auto-fullscreen below md breakpoint (768px) */\n @media (max-width: ${semantic.breakpoint.md}) {\n width: 100vw;\n height: 100vh;\n max-width: 100vw;\n max-height: 100vh;\n border-radius: 0;\n top: 0;\n left: 0;\n transform: none;\n animation: ${fadeIn} ${motion.duration.moderate} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};\n }\n\n &:focus {\n outline: none;\n }\n\n`\n\nconst StyledHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ${space[400]} ${space[400]} 0;\n flex-shrink: 0;\n`\n\nconst StyledBody = styled.div`\n flex: 1 1 auto;\n overflow-y: auto;\n padding: ${space[300]} ${space[400]};\n\n /* Scrollbar styling */\n &::-webkit-scrollbar {\n width: ${semantic.space[200]};\n }\n &::-webkit-scrollbar-track {\n background: ${color.fill.muted};\n }\n &::-webkit-scrollbar-thumb {\n background: ${color.border.default};\n border-radius: ${semantic.radius.full};\n }\n &::-webkit-scrollbar-thumb:hover {\n background: ${color.fill.inverse};\n }\n`\n\nconst StyledFooter = styled.div`\n display: flex;\n justify-content: flex-end;\n gap: ${space[200]};\n padding: 0 ${space[400]} ${space[400]};\n flex-shrink: 0;\n`\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\n/**\n * Modal component\n *\n * A centred dialog overlay with a title, close button (IconButton), scrollable\n * body content, and an optional footer with structured action buttons.\n *\n * - Renders via `createPortal` to avoid z-index / overflow issues.\n * - Auto-fullscreen on viewports narrower than 768 px.\n * - Focus trap, Escape-to-close, overlay-click-to-close.\n * - Locks body scroll while open.\n *\n * Composes: IconButton, Button, Typography, Stack, Divider\n */\nexport const Modal: React.FC<ModalProps> = ({\n isOpen,\n onClose,\n title,\n children,\n size = 'medium',\n actions,\n closeOnOverlayClick = true,\n closeOnEscape = true,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n}) => {\n const dialogRef = useRef<HTMLDivElement>(null)\n const previousFocusRef = useRef<HTMLElement | null>(null)\n const { isPresent, isExiting } = usePresence(isOpen)\n useInert(dialogRef, isExiting)\n\n // -----------------------------------------------------------------------\n // Focus & scroll-lock management\n // -----------------------------------------------------------------------\n useEffect(() => {\n if (isOpen) {\n previousFocusRef.current = document.activeElement as HTMLElement\n // Short delay so the animation can start before we shift focus\n const timer = setTimeout(() => dialogRef.current?.focus(), 100)\n document.body.style.overflow = 'hidden'\n return () => {\n clearTimeout(timer)\n }\n } else {\n previousFocusRef.current?.focus()\n document.body.style.overflow = ''\n }\n return () => {\n document.body.style.overflow = ''\n }\n }, [isOpen])\n\n // -----------------------------------------------------------------------\n // Keyboard handling (Escape + focus trap)\n // -----------------------------------------------------------------------\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (closeOnEscape && event.key === 'Escape') {\n event.preventDefault()\n onClose()\n }\n\n if (event.key === 'Tab') {\n const focusableElements = dialogRef.current?.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n )\n if (!focusableElements || focusableElements.length === 0) return\n\n const first = focusableElements[0]\n const last = focusableElements[focusableElements.length - 1]\n\n if (event.shiftKey && document.activeElement === first) {\n event.preventDefault()\n last.focus()\n } else if (!event.shiftKey && document.activeElement === last) {\n event.preventDefault()\n first.focus()\n }\n }\n }\n\n // -----------------------------------------------------------------------\n // Overlay click\n // -----------------------------------------------------------------------\n const handleOverlayClick = (event: React.MouseEvent<HTMLDivElement>) => {\n // While exiting, the backdrop still catches clicks but doesn't close again\n if (!isExiting && closeOnOverlayClick && event.target === event.currentTarget) {\n onClose()\n }\n }\n\n // -----------------------------------------------------------------------\n // Render\n // -----------------------------------------------------------------------\n // Stays mounted while the exit fade runs, hidden from assistive technology\n if (!isPresent) return null\n\n const titleId = dataTestId ? `${dataTestId}-title` : 'modal-title'\n const width = sizeToWidth[size]\n\n const modal = (\n <>\n <StyledOverlay\n onClick={handleOverlayClick}\n $isExiting={isExiting}\n data-testid={dataTestId ? `${dataTestId}-overlay` : 'modal-overlay'}\n />\n\n <StyledDialog\n ref={dialogRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={ariaLabel || title}\n aria-labelledby={titleId}\n aria-describedby={ariaDescribedBy}\n aria-hidden={isExiting || undefined}\n tabIndex={-1}\n $width={width}\n $isExiting={isExiting}\n onKeyDown={handleKeyDown}\n data-testid={dataTestId}\n >\n {/* ---- Header ---- */}\n <StyledHeader>\n <span id={titleId}>\n <Typography variant=\"h3\">\n {title}\n </Typography>\n </span>\n <IconButton\n variant=\"naked\"\n iconName=\"close\"\n aria-label=\"Close modal\"\n onClick={onClose}\n size=\"medium\"\n data-testid={dataTestId ? `${dataTestId}-close` : 'modal-close'}\n />\n </StyledHeader>\n\n <Divider size=\"small\" />\n\n {/* ---- Body ---- */}\n <StyledBody data-testid={dataTestId ? `${dataTestId}-body` : 'modal-body'}>\n {children}\n </StyledBody>\n\n {/* ---- Footer ---- */}\n {actions && actions.length > 0 && (\n <>\n <Divider size=\"small\" />\n <StyledFooter data-testid={dataTestId ? `${dataTestId}-footer` : 'modal-footer'}>\n {actions.map((action, index) => (\n <Button\n key={`${action.label}-${index}`}\n onClick={action.onClick}\n variant={action.variant || 'secondary'}\n iconName={action.icon}\n disabled={action.disabled}\n size=\"medium\"\n data-testid={\n dataTestId ? `${dataTestId}-action-${index}` : `modal-action-${index}`\n }\n >\n {action.label}\n </Button>\n ))}\n </StyledFooter>\n </>\n )}\n </StyledDialog>\n </>\n )\n\n return createPortal(modal, document.body)\n}\n\nModal.displayName = 'Modal'\n","import styled, { css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\nconst { component: { input }, semantic } = tokens\n\n// Spacing comes from the semantic scales: no component spacing tokens (decision 0022).\n// Single-line fields take their height from size.control.lg as a minimum and the\n// browser centres the text, so there is no vertical padding (decision 0034).\n\n/**\n * Shared input states for text-based form controls\n */\nexport type InputState = 'default' | 'focus' | 'error' | 'disabled'\n\n/**\n * Base styled input component with all common styling\n * Reusable across TextField, TextArea, PasswordInput, NumberInput\n */\ninterface StyledInputBaseProps {\n $hasError?: boolean\n $disabled?: boolean\n}\n\n/**\n * Styles shared by the single-line input and the textarea. Each element sets its\n * own min-height and padding. Interpolating a styled component into another's CSS\n * inserts its class selector, not its styles, so the sharing goes through `css`.\n */\nconst inputBaseStyles = css<StyledInputBaseProps>`\n /* Typography */\n font: ${input.default.font};\n color: ${({ $disabled }) => \n $disabled \n ? input.disabled.textColor \n : input.default.textColor\n };\n \n /* Layout */\n box-sizing: border-box; /* the min-height includes the border, without relying on a global reset */\n width: 100%;\n \n /* Visual styling */\n background-color: ${({ $disabled }) => \n $disabled \n ? input.disabled.backgroundColor \n : input.default.backgroundColor\n };\n \n border: ${input.default.borderWidth} solid ${({ $hasError, $disabled }) => {\n if ($disabled) return input.disabled.borderColor\n if ($hasError) return input.error.borderColor\n return input.default.borderColor\n }};\n \n border-radius: ${input.default.borderRadius};\n \n /* Remove default appearance */\n appearance: none;\n outline: none;\n \n /* Transitions */\n transition: border-color ${tokens.semantic.motion.duration.moderate} ${tokens.semantic.motion.easing.standard},\n outline ${tokens.semantic.motion.duration.moderate} ${tokens.semantic.motion.easing.standard};\n \n /* Placeholder */\n &::placeholder {\n color: ${input.placeholder.textColor};\n opacity: 1;\n }\n \n /* Focus state */\n &:focus {\n border-color: ${({ $hasError }) => \n $hasError \n ? input.error.focus.borderColor \n : input.focus.borderColor\n };\n outline: ${input.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n }\n \n /* Hover state (only when not disabled) */\n &:hover:not(:disabled) {\n border-color: ${({ $hasError }) => \n $hasError \n ? input.error.hover.borderColor \n : input.hover.borderColor\n };\n }\n \n /* Disabled state */\n &:disabled {\n cursor: not-allowed;\n }\n \n /* Remove number input spinners */\n &[type='number']::-webkit-inner-spin-button,\n &[type='number']::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n \n &[type='number'] {\n -moz-appearance: textfield;\n }\n`\n\nexport const StyledInputBase = styled.input.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledInputBaseProps>`\n ${inputBaseStyles}\n min-height: ${semantic.size.control.lg};\n padding: 0 ${semantic.space.inset.lg};\n`\n\n/**\n * Base styled textarea with shared styling\n */\nexport const StyledTextAreaBase = styled.textarea.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledInputBaseProps>`\n ${inputBaseStyles}\n \n /* TextArea specific: a taller minimum for multi-line entry (decision 0034) */\n min-height: ${input.textarea.minHeight};\n padding: ${semantic.space.inset.md} ${semantic.space.inset.lg};\n resize: vertical;\n`\n","import { InputHTMLAttributes, forwardRef, useId, useCallback, ChangeEvent, KeyboardEvent } from 'react'\nimport styled from 'styled-components'\nimport { StyledInputBase } from '../TextField/InputBase'\nimport { IconButton } from '../../atoms/IconButton/IconButton'\nimport tokens from '@/lib/cssTokens'\n\nconst { field } = tokens.component\n// Gaps come from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst { space } = tokens.semantic\n\n/**\n * Props for the NumberInput component\n */\nexport interface NumberInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange' | 'value' | 'defaultValue'> {\n /**\n * Label text for the input\n */\n label?: string\n \n /**\n * Helper text displayed below the input\n */\n helperText?: string\n \n /**\n * Error message to display\n */\n error?: string\n \n /**\n * Whether the field is required\n * @default false\n */\n required?: boolean\n \n /**\n * Whether the input is disabled\n * @default false\n */\n disabled?: boolean\n \n /**\n * Minimum allowed value\n */\n min?: number\n \n /**\n * Maximum allowed value\n */\n max?: number\n \n /**\n * Step increment/decrement value\n * @default 1\n */\n step?: number\n \n /**\n * Current value (controlled)\n */\n value?: number | ''\n \n /**\n * Default value (uncontrolled)\n */\n defaultValue?: number | ''\n \n /**\n * Callback fired when value changes\n */\n onChange?: (value: number | '', event: ChangeEvent<HTMLInputElement>) => void\n \n /**\n * Unique identifier for the input\n * Generated automatically if not provided\n */\n id?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\nconst StyledFieldContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${space[200]};\n width: 100%;\n`\n\nconst StyledLabel = styled.label`\n display: flex;\n align-items: center;\n gap: ${space[100]};\n font: ${field.label.typography};\n color: ${field.label.color};\n\n &[data-disabled='true'] {\n color: ${field.label.colorDisabled};\n }\n`\n\nconst StyledRequiredIndicator = styled.span`\n color: ${field.requiredIndicator.color};\n font-weight: ${field.requiredIndicator.fontWeight};\n`\n\nconst StyledInputWrapper = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n`\n\nconst StyledNumberInput = styled(StyledInputBase)`\n /* Add padding on the right to make room for stepper buttons */\n padding-right: ${tokens.semantic.space[1000]};\n`\n\nconst StyledStepperContainer = styled.div`\n position: absolute;\n right: ${tokens.semantic.space[200]};\n display: flex;\n flex-direction: row;\n gap: ${tokens.semantic.space[200]};\n`\n\nconst StyledHelperText = styled.div<{ $isError?: boolean }>`\n font: ${field.helperText.typography};\n color: ${({ $isError }) =>\n $isError\n ? field.helperText.colorError\n : field.helperText.color\n };\n`\n\n/**\n * NumberInput component for numeric input with stepper buttons and WCAG 2.2 AA compliance\n * \n * Features:\n * - Stepper buttons for increment/decrement\n * - Keyboard arrow up/down support\n * - Min/max value constraints\n * - Custom step values\n * - Decimal and integer support\n * - Full accessibility with ARIA attributes\n * \n * @example\n * ```tsx\n * <NumberInput \n * label=\"Quantity\"\n * min={0}\n * max={100}\n * step={1}\n * value={value}\n * onChange={(newValue) => setValue(newValue)}\n * />\n * ```\n */\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n label,\n helperText,\n error,\n required = false,\n disabled = false,\n min,\n max,\n step = 1,\n value,\n defaultValue,\n onChange,\n id: providedId,\n 'data-testid': testId,\n placeholder,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n ...rest\n },\n ref\n ) => {\n const generatedId = useId()\n const id = providedId || generatedId\n const helperId = `${id}-helper`\n const errorId = `${id}-error`\n \n // Parse string value to number or empty string\n const parseValue = useCallback((val: string): number | '' => {\n if (val === '' || val === '-') return ''\n const parsed = parseFloat(val)\n return isNaN(parsed) ? '' : parsed\n }, [])\n \n // Format number to string for display\n const formatValue = useCallback((val: number | ''): string => {\n return val === '' ? '' : String(val)\n }, [])\n \n // Handle increment\n const handleIncrement = useCallback(() => {\n if (disabled) return\n \n const inputElement = (ref as React.RefObject<HTMLInputElement>)?.current\n const currentValue = value !== undefined ? value : parseValue(inputElement?.value || '')\n const numValue = currentValue === '' ? (min !== undefined ? min : 0) : currentValue\n const newValue = numValue + step\n \n // Check max constraint\n if (max !== undefined && newValue > max) return\n \n // Update input value directly for both controlled and uncontrolled\n if (inputElement) {\n inputElement.value = String(newValue)\n }\n \n // Create synthetic event\n const syntheticEvent = {\n target: inputElement || { value: String(newValue) },\n currentTarget: inputElement || { value: String(newValue) }\n } as ChangeEvent<HTMLInputElement>\n \n onChange?.(newValue, syntheticEvent)\n }, [disabled, value, min, max, step, onChange, parseValue, ref])\n \n // Handle decrement\n const handleDecrement = useCallback(() => {\n if (disabled) return\n \n const inputElement = (ref as React.RefObject<HTMLInputElement>)?.current\n const currentValue = value !== undefined ? value : parseValue(inputElement?.value || '')\n const numValue = currentValue === '' ? (max !== undefined ? max : 0) : currentValue\n const newValue = numValue - step\n \n // Check min constraint\n if (min !== undefined && newValue < min) return\n \n // Update input value directly for both controlled and uncontrolled\n if (inputElement) {\n inputElement.value = String(newValue)\n }\n \n // Create synthetic event\n const syntheticEvent = {\n target: inputElement || { value: String(newValue) },\n currentTarget: inputElement || { value: String(newValue) }\n } as ChangeEvent<HTMLInputElement>\n \n onChange?.(newValue, syntheticEvent)\n }, [disabled, value, min, max, step, onChange, parseValue, ref])\n \n // Handle input change\n const handleChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value\n \n // Allow empty, negative sign, or valid number (including decimals)\n if (inputValue === '' || inputValue === '-' || /^-?\\d*\\.?\\d*$/.test(inputValue)) {\n const parsedValue = parseValue(inputValue)\n onChange?.(parsedValue, e)\n } else {\n // Prevent invalid input by not updating\n e.preventDefault()\n e.target.value = formatValue(value !== undefined ? value : '')\n }\n }, [onChange, parseValue, value, formatValue])\n \n // Handle keyboard navigation\n const handleKeyDown = useCallback((e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'ArrowUp') {\n e.preventDefault()\n handleIncrement()\n } else if (e.key === 'ArrowDown') {\n e.preventDefault()\n handleDecrement()\n }\n }, [handleIncrement, handleDecrement])\n \n // Check if buttons should be disabled\n const isIncrementDisabled = disabled || (max !== undefined && value !== '' && typeof value === 'number' && value >= max)\n const isDecrementDisabled = disabled || (min !== undefined && value !== '' && typeof value === 'number' && value <= min)\n \n // Build aria-describedby\n const ariaDescribedByIds = [\n ariaDescribedBy,\n helperText ? helperId : null,\n error ? errorId : null,\n ].filter(Boolean).join(' ') || undefined\n \n return (\n <StyledFieldContainer>\n {label && (\n <StyledLabel \n htmlFor={id}\n data-disabled={disabled}\n >\n {label}\n {required && <StyledRequiredIndicator aria-label=\"required\">*</StyledRequiredIndicator>}\n </StyledLabel>\n )}\n \n <StyledInputWrapper>\n <StyledNumberInput\n ref={ref}\n id={id}\n type=\"text\"\n inputMode=\"decimal\"\n value={value !== undefined ? formatValue(value) : undefined}\n defaultValue={defaultValue !== undefined ? formatValue(defaultValue) : undefined}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n required={required}\n placeholder={placeholder}\n $hasError={!!error}\n $disabled={disabled}\n aria-label={ariaLabel || label}\n aria-invalid={!!error}\n aria-describedby={ariaDescribedByIds}\n aria-required={required}\n data-testid={testId}\n role=\"spinbutton\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={typeof value === 'number' ? value : undefined}\n {...rest}\n />\n \n <StyledStepperContainer>\n <IconButton\n iconName=\"caretUp\"\n variant=\"secondary\"\n size=\"small\"\n onClick={handleIncrement}\n disabled={isIncrementDisabled}\n aria-label=\"Increment value\"\n tabIndex={-1}\n type=\"button\"\n />\n <IconButton\n iconName=\"caretDown\"\n variant=\"secondary\"\n size=\"small\"\n onClick={handleDecrement}\n disabled={isDecrementDisabled}\n aria-label=\"Decrement value\"\n tabIndex={-1}\n type=\"button\"\n />\n </StyledStepperContainer>\n </StyledInputWrapper>\n \n {(helperText || error) && (\n <StyledHelperText \n id={error ? errorId : helperId}\n $isError={!!error}\n role={error ? 'alert' : undefined}\n aria-live={error ? 'polite' : undefined}\n >\n {error || helperText}\n </StyledHelperText>\n )}\n </StyledFieldContainer>\n )\n }\n)\n\nNumberInput.displayName = 'NumberInput'\n","import { InputHTMLAttributes, forwardRef, useId, useState } from 'react'\nimport styled from 'styled-components'\nimport { StyledInputBase } from '../TextField/InputBase'\nimport { IconButton } from '../../atoms/IconButton/IconButton'\nimport tokens from '@/lib/cssTokens'\n\nconst { field } = tokens.component\n// Gaps come from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst { space } = tokens.semantic\n\n/**\n * Props for the PasswordField component\n */\nexport interface PasswordFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {\n /**\n * Label text for the input\n */\n label?: string\n \n /**\n * Helper text displayed below the input\n */\n helperText?: string\n \n /**\n * Error message to display\n */\n error?: string\n \n /**\n * Whether the field is required\n * @default false\n */\n required?: boolean\n \n /**\n * Whether the input is disabled\n * @default false\n */\n disabled?: boolean\n \n /**\n * Unique identifier for the input\n * Generated automatically if not provided\n */\n id?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n \n /**\n * Whether to show the password visibility toggle button\n * @default true\n */\n showToggle?: boolean\n}\n\nconst StyledFieldContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${space[200]};\n width: 100%;\n`\n\nconst StyledLabel = styled.label`\n display: flex;\n align-items: center;\n gap: ${space[100]};\n font: ${field.label.typography};\n color: ${field.label.color};\n\n &[data-disabled='true'] {\n color: ${field.label.colorDisabled};\n }\n`\n\nconst StyledRequiredIndicator = styled.span`\n color: ${field.requiredIndicator.color};\n font-weight: ${field.requiredIndicator.fontWeight};\n`\n\nconst StyledHelperText = styled.div<{ $hasError?: boolean }>`\n font: ${field.helperText.typography};\n color: ${({ $hasError }) =>\n $hasError\n ? field.helperText.colorError\n : field.helperText.color\n };\n`\n\nconst StyledInputWrapper = styled.div`\n position: relative;\n width: 100%;\n`\n\nconst StyledToggleButton = styled.div`\n position: absolute;\n right: ${tokens.semantic.space[200]};\n top: 50%;\n transform: translateY(-50%);\n`\n\n/**\n * PasswordField component for secure password input with visibility toggle\n * \n * @example\n * ```tsx\n * <PasswordField \n * label=\"Password\" \n * helperText=\"Must be at least 8 characters\"\n * required\n * />\n * ```\n */\nexport const PasswordField = forwardRef<HTMLInputElement, PasswordFieldProps>(\n (\n {\n label,\n helperText,\n error,\n required = false,\n disabled = false,\n id: providedId,\n 'data-testid': dataTestId,\n showToggle = true,\n ...inputProps\n },\n ref\n ) => {\n // Generate unique ID if not provided\n const generatedId = useId()\n const id = providedId || generatedId\n \n // Password visibility state\n const [showPassword, setShowPassword] = useState(false)\n \n // IDs for ARIA relationships\n const errorId = error ? `${id}-error` : undefined\n const helperId = helperText && !error ? `${id}-helper` : undefined\n const describedBy = [errorId, helperId].filter(Boolean).join(' ') || undefined\n \n const hasError = Boolean(error)\n \n const togglePasswordVisibility = () => {\n setShowPassword(!showPassword)\n }\n \n return (\n <StyledFieldContainer>\n {label && (\n <StyledLabel \n htmlFor={id}\n data-disabled={disabled}\n >\n {label}\n {required && (\n <StyledRequiredIndicator aria-label=\"required\">\n *\n </StyledRequiredIndicator>\n )}\n </StyledLabel>\n )}\n \n <StyledInputWrapper>\n <StyledInputBase\n ref={ref}\n id={id}\n type={showPassword ? 'text' : 'password'}\n disabled={disabled}\n required={required}\n aria-required={required}\n aria-invalid={hasError}\n aria-describedby={describedBy}\n $hasError={hasError}\n $disabled={disabled}\n data-testid={dataTestId}\n style={{ paddingRight: showToggle ? '3rem' : undefined }}\n {...inputProps}\n />\n \n {showToggle && (\n <StyledToggleButton>\n <IconButton\n variant=\"naked\"\n size=\"small\"\n iconName={showPassword ? 'viewHide' : 'view'}\n onClick={togglePasswordVisibility}\n disabled={disabled}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n aria-pressed={showPassword}\n type=\"button\"\n tabIndex={-1}\n />\n </StyledToggleButton>\n )}\n </StyledInputWrapper>\n \n {error && (\n <StyledHelperText\n id={errorId}\n role=\"alert\"\n aria-live=\"polite\"\n $hasError={true}\n >\n {error}\n </StyledHelperText>\n )}\n \n {helperText && !error && (\n <StyledHelperText id={helperId}>\n {helperText}\n </StyledHelperText>\n )}\n </StyledFieldContainer>\n )\n }\n)\n\nPasswordField.displayName = 'PasswordField'\n","import { \n useState, \n useRef, \n useEffect, \n useMemo, \n KeyboardEvent, \n ChangeEvent, \n FocusEvent,\n InputHTMLAttributes,\n forwardRef\n} from 'react'\nimport styled from 'styled-components'\nimport { Icon } from '../../atoms/Icon/Icon'\nimport { IconButton } from '../../atoms/IconButton/IconButton'\nimport { Stack } from '../../atoms/Stack/Stack'\nimport { Typography } from '../../atoms/Typography/Typography'\nimport { ListItem } from '../List/ListItem'\nimport tokens from '@/lib/cssTokens'\nimport { rowStates } from '../../../lib/styleUtils'\n\nconst { semantic, component } = tokens\n\n/**\n * Suggestion item for autocomplete\n */\nexport interface Suggestion {\n /**\n * Unique identifier\n */\n id: string\n \n /**\n * Display text\n */\n label: string\n \n /**\n * Optional secondary text\n */\n description?: string\n \n /**\n * Optional category for grouping\n */\n category?: string\n}\n\n/**\n * Props for the SearchField component\n */\nexport interface SearchFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'onChange'> {\n /**\n * Current search value\n */\n value: string\n \n /**\n * Callback when value changes\n */\n onChange: (value: string) => void\n \n /**\n * Suggestions to display\n */\n suggestions?: Suggestion[]\n \n /**\n * Whether to show recent searches\n * @default true\n */\n showRecentSearches?: boolean\n \n /**\n * Array of recent search terms\n */\n recentSearches?: string[]\n \n /**\n * Callback when a suggestion is selected\n */\n onSuggestionSelect?: (suggestion: Suggestion | string) => void\n \n /**\n * Callback to clear recent searches\n */\n onClearRecentSearches?: () => void\n \n /**\n * Debounce delay in milliseconds\n * @default 300\n */\n debounceMs?: number\n \n /**\n * Placeholder text\n * @default 'Search...'\n */\n placeholder?: string\n \n /**\n * Whether the field is disabled\n * @default false\n */\n disabled?: boolean\n \n /**\n * Whether to show loading state\n * @default false\n */\n loading?: boolean\n \n /**\n * Accessible label\n */\n 'aria-label'?: string\n \n /**\n * Test identifier\n */\n 'data-testid'?: string\n}\n\ninterface StyledSearchContainerProps {\n $isFocused: boolean\n $disabled: boolean\n}\n\ninterface StyledSuggestionItemProps {\n $isHighlighted: boolean\n $isRecent: boolean\n}\n\nconst StyledSearchContainer = styled.div<StyledSearchContainerProps>`\n position: relative;\n width: 100%;\n`\n\nconst StyledInputWrapper = styled.div<StyledSearchContainerProps>`\n display: flex;\n align-items: center;\n gap: ${semantic.space[200]};\n /* The field's height comes from size.control.lg as a minimum, matching the other fields\n (decision 0034); the padding only matters if the content grows past it */\n box-sizing: border-box;\n min-height: ${semantic.size.control.lg};\n padding: ${semantic.space[200]} ${semantic.space[300]};\n background-color: ${component.input.default.backgroundColor};\n border: ${component.input.default.borderWidth} solid ${component.input.default.borderColor};\n border-radius: ${component.input.default.borderRadius};\n transition: border-color ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}, outline ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard};\n \n ${props => props.$isFocused && `\n border-color: ${component.input.focus.borderColor};\n outline: ${component.input.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n `}\n \n ${props => props.$disabled && `\n background-color: ${component.input.disabled.backgroundColor};\n border-color: ${component.input.disabled.borderColor};\n cursor: not-allowed;\n `}\n \n &:hover:not([data-disabled='true']) {\n border-color: ${component.input.hover.borderColor};\n }\n`\n\nconst StyledInput = styled.input`\n flex: 1;\n border: none;\n background: transparent;\n font: ${semantic.typography.body};\n color: ${semantic.color.text.default};\n outline: none;\n \n &::placeholder {\n color: ${component.input.placeholder.textColor};\n /* Firefox fades placeholders to 0.54 by default, which would undo the 4.5:1 contrast */\n opacity: 1;\n }\n \n &:disabled {\n color: ${semantic.color.text.disabled};\n cursor: not-allowed;\n }\n`\n\nconst StyledSuggestionsList = styled.ul`\n position: absolute;\n top: calc(100% + ${semantic.space[100]});\n left: 0;\n right: 0;\n max-height: ${tokens.semantic.size.menu.maxHeight};\n overflow-y: auto;\n background-color: ${semantic.surface.raised};\n border: ${semantic.border.width.thin} solid ${semantic.color.border.default};\n border-radius: ${semantic.radius.md};\n box-shadow: ${semantic.elevation.floating};\n list-style: none;\n padding: ${semantic.space[100]} 0;\n margin: 0;\n z-index: ${semantic.layer.dropdown};\n\n /* The highlighted suggestion has keyboard focus, which is grey, not the light-blue selected\n treatment (decision 0029). Its row is the option's first child. While pressed, the row's own\n pressed state shows (decision 0030) */\n & > [data-highlighted] > :first-child:not(:active) {\n background-color: ${rowStates.unselected.hover.background};\n }\n`\n\nconst StyledSectionHeader = styled.div`\n padding: ${semantic.space[200]} ${semantic.space[300]};\n font: ${tokens.component.searchField.sectionHeader.typography};\n color: ${semantic.color.text.muted};\n text-transform: uppercase;\n letter-spacing: ${tokens.component.searchField.sectionHeader.letterSpacing};\n`\n\nconst debounce = <T extends (...args: any[]) => any>(\n func: T,\n wait: number\n): ((...args: Parameters<T>) => void) => {\n let timeout: NodeJS.Timeout | null = null\n \n return (...args: Parameters<T>) => {\n if (timeout) clearTimeout(timeout)\n timeout = setTimeout(() => func(...args), wait)\n }\n}\n\n/**\n * SearchField component with autocomplete and recent searches\n * \n * Provides intelligent search with debouncing, keyboard navigation,\n * suggestions, and recent search history. Fully accessible with ARIA.\n * \n * @example\n * ```tsx\n * const [search, setSearch] = useState('')\n * const [suggestions] = useState([\n * { id: '1', label: 'Apple', category: 'Fruit' },\n * { id: '2', label: 'Banana', category: 'Fruit' }\n * ])\n * \n * <SearchField\n * value={search}\n * onChange={setSearch}\n * suggestions={suggestions}\n * recentSearches={['coffee', 'tea']}\n * onSuggestionSelect={(item) => console.log('Selected:', item)}\n * />\n * ```\n */\nexport const SearchField = forwardRef<HTMLInputElement, SearchFieldProps>(\n (\n {\n value,\n onChange,\n suggestions = [],\n showRecentSearches = true,\n recentSearches = [],\n onSuggestionSelect,\n onClearRecentSearches,\n debounceMs = 300,\n placeholder = 'Search...',\n disabled = false,\n loading = false,\n 'aria-label': ariaLabel = 'Search',\n 'data-testid': dataTestId,\n ...inputProps\n },\n ref\n ) => {\n const [isFocused, setIsFocused] = useState(false)\n const [showSuggestions, setShowSuggestions] = useState(false)\n const [highlightedIndex, setHighlightedIndex] = useState(-1)\n const [debouncedValue, setDebouncedValue] = useState(value)\n const inputRef = useRef<HTMLInputElement>(null)\n const listRef = useRef<HTMLUListElement>(null)\n \n // Combine refs\n useEffect(() => {\n if (ref) {\n if (typeof ref === 'function') {\n ref(inputRef.current)\n } else {\n ref.current = inputRef.current\n }\n }\n }, [ref])\n \n // Debounced search\n const debouncedOnChange = useMemo(\n () =>\n debounce((newValue: string) => {\n setDebouncedValue(newValue)\n }, debounceMs),\n [debounceMs]\n )\n \n useEffect(() => {\n debouncedOnChange(value)\n }, [value, debouncedOnChange])\n \n // Combined list of suggestions and recent searches\n const displayItems = useMemo(() => {\n const items: Array<{ type: 'suggestion' | 'recent' | 'clear'; data: Suggestion | string }> = []\n \n if (value.trim()) {\n // Show matching suggestions\n suggestions.forEach(s => items.push({ type: 'suggestion', data: s }))\n } else if (showRecentSearches && recentSearches.length > 0) {\n // Show recent searches when empty\n recentSearches.forEach(r => items.push({ type: 'recent', data: r }))\n if (onClearRecentSearches) {\n items.push({ type: 'clear', data: 'clear' })\n }\n }\n \n return items\n }, [value, suggestions, recentSearches, showRecentSearches, onClearRecentSearches])\n \n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n onChange(newValue)\n setShowSuggestions(true)\n setHighlightedIndex(-1)\n }\n \n const handleFocus = (e: FocusEvent<HTMLInputElement>) => {\n setIsFocused(true)\n setShowSuggestions(true)\n inputProps.onFocus?.(e)\n }\n \n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n // Delay to allow click events on suggestions\n setTimeout(() => {\n setIsFocused(false)\n setShowSuggestions(false)\n setHighlightedIndex(-1)\n }, 200)\n inputProps.onBlur?.(e)\n }\n \n const handleSuggestionClick = (item: typeof displayItems[0]) => {\n if (item.type === 'clear') {\n onClearRecentSearches?.()\n return\n }\n \n const suggestion = item.data\n if (typeof suggestion === 'string') {\n onChange(suggestion)\n onSuggestionSelect?.(suggestion)\n } else {\n onChange(suggestion.label)\n onSuggestionSelect?.(suggestion)\n }\n setShowSuggestions(false)\n inputRef.current?.focus()\n }\n \n const handleClear = () => {\n onChange('')\n setShowSuggestions(false)\n inputRef.current?.focus()\n }\n \n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (!showSuggestions || displayItems.length === 0) return\n \n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault()\n setHighlightedIndex(prev =>\n prev < displayItems.length - 1 ? prev + 1 : prev\n )\n break\n \n case 'ArrowUp':\n e.preventDefault()\n setHighlightedIndex(prev => (prev > 0 ? prev - 1 : -1))\n break\n \n case 'Enter':\n e.preventDefault()\n if (highlightedIndex >= 0 && highlightedIndex < displayItems.length) {\n handleSuggestionClick(displayItems[highlightedIndex])\n }\n break\n \n case 'Escape':\n e.preventDefault()\n setShowSuggestions(false)\n setHighlightedIndex(-1)\n break\n }\n \n inputProps.onKeyDown?.(e)\n }\n \n // Scroll highlighted item into view\n useEffect(() => {\n if (highlightedIndex >= 0 && listRef.current) {\n const items = listRef.current.querySelectorAll('li')\n items[highlightedIndex]?.scrollIntoView({ block: 'nearest' })\n }\n }, [highlightedIndex])\n \n const showClearButton = value.length > 0 && !disabled\n const hasItems = displayItems.length > 0\n \n return (\n <StyledSearchContainer\n $isFocused={isFocused}\n $disabled={disabled}\n data-testid={dataTestId}\n >\n <StyledInputWrapper \n $isFocused={isFocused} \n $disabled={disabled}\n data-disabled={disabled}\n >\n <Icon\n name=\"search\"\n size=\"sm\"\n iconColor=\"subdued\"\n />\n \n <StyledInput\n ref={inputRef}\n type=\"text\"\n value={value}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-autocomplete=\"list\"\n aria-controls={showSuggestions && hasItems ? 'search-suggestions' : undefined}\n aria-expanded={showSuggestions && hasItems}\n aria-activedescendant={\n highlightedIndex >= 0 ? `suggestion-${highlightedIndex}` : undefined\n }\n role=\"combobox\"\n {...inputProps}\n />\n \n {loading && (\n <Icon\n name=\"refresh\"\n size=\"sm\"\n iconColor=\"subdued\"\n aria-label=\"Loading\"\n />\n )}\n \n {showClearButton && (\n <IconButton\n iconName=\"close\"\n size=\"small\"\n variant=\"naked\"\n onClick={handleClear}\n aria-label=\"Clear search\"\n tabIndex={-1}\n />\n )}\n </StyledInputWrapper>\n \n {showSuggestions && hasItems && (\n <StyledSuggestionsList\n ref={listRef}\n id=\"search-suggestions\"\n role=\"listbox\"\n >\n {!value.trim() && showRecentSearches && recentSearches.length > 0 && (\n <StyledSectionHeader>Recent Searches</StyledSectionHeader>\n )}\n \n {displayItems.map((item, index) => {\n if (item.type === 'clear') {\n return (\n <ListItem\n key=\"clear\"\n role=\"option\"\n primary=\"Clear recent searches\"\n interactive\n // Deprecated prop (0051), kept for this padding until 4.0 removes it\n spacing=\"compact\"\n onClick={() => handleSuggestionClick(item)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleSuggestionClick(item)\n }\n }}\n />\n )\n }\n \n const suggestion = item.data\n const isString = typeof suggestion === 'string'\n const label = isString ? suggestion : suggestion.label\n const description = !isString ? suggestion.description : undefined\n \n return (\n <ListItem\n key={isString ? suggestion : suggestion.id}\n id={`suggestion-${index}`}\n role=\"option\"\n aria-selected={index === highlightedIndex}\n primary={label}\n secondary={description}\n icon={item.type === 'recent' ? <Icon name=\"refresh\" size=\"xs\" /> : undefined}\n interactive\n data-highlighted={index === highlightedIndex || undefined}\n // Deprecated prop (0051), kept for this padding until 4.0 removes it\n spacing=\"compact\"\n onClick={() => handleSuggestionClick(item)}\n />\n )\n })}\n </StyledSuggestionsList>\n )}\n </StyledSearchContainer>\n )\n }\n)\n\nSearchField.displayName = 'SearchField'\n","import { useEffect, useRef, ReactNode, KeyboardEvent } from 'react'\nimport styled, { keyframes, css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { exitAnimation, reducedMotion } from '../../../lib/styleUtils'\nimport { useInert, usePresence } from '../../../lib/usePresence'\n\nconst { semantic } = tokens\n\n/**\n * Props for the Sheet component\n */\nexport interface SheetProps {\n /**\n * Whether the sheet is open\n */\n isOpen: boolean\n \n /**\n * Callback fired when the sheet should close\n */\n onClose: () => void\n \n /**\n * Position of the sheet\n * @default 'right'\n */\n position?: 'top' | 'right' | 'bottom' | 'left'\n \n /**\n * Variant of the sheet\n * - 'sheet': Full height/width edge-to-edge\n * - 'drawer': Floating with rounded corners and margin\n * @default 'sheet'\n */\n variant?: 'sheet' | 'drawer'\n \n /**\n * Width of the sheet (for left/right positions)\n * @default semantic.size.overlay.sm (25rem, 400px)\n */\n width?: string\n \n /**\n * Height of the sheet (for top/bottom positions)\n * @default semantic.size.overlay.sm (25rem, 400px)\n */\n height?: string\n \n /**\n * Content to display in the sheet\n */\n children?: ReactNode\n \n /**\n * Whether clicking the overlay should close the sheet\n * @default true\n */\n closeOnOverlayClick?: boolean\n \n /**\n * Whether pressing Escape should close the sheet\n * @default true\n */\n closeOnEscape?: boolean\n \n /**\n * Optional title for the sheet (improves accessibility)\n */\n title?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n \n /**\n * Accessible label for the sheet\n */\n 'aria-label'?: string\n \n /**\n * ID of element describing the sheet\n */\n 'aria-describedby'?: string\n}\n\n// Fade in animation for overlay\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`\n\n// Slide animations for each position\nconst slideInRight = keyframes`\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0);\n }\n`\n\nconst slideInLeft = keyframes`\n from {\n transform: translateX(-100%);\n }\n to {\n transform: translateX(0);\n }\n`\n\nconst slideInTop = keyframes`\n from {\n transform: translateY(-100%);\n }\n to {\n transform: translateY(0);\n }\n`\n\nconst slideInBottom = keyframes`\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n`\n\nconst StyledOverlay = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isExiting: boolean }>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: ${semantic.surface.scrim};\n z-index: ${semantic.layer.overlay};\n ${css<{ $isExiting: boolean }>`animation: ${fadeIn} ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}${({ $isExiting }) => $isExiting && exitAnimation};`}\n`\n\nconst StyledSheet = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $position: 'top' | 'right' | 'bottom' | 'left'\n $variant: 'sheet' | 'drawer'\n $width: string\n $height: string\n $isExiting: boolean\n}>`\n position: fixed;\n background-color: ${semantic.surface.base};\n box-shadow: ${semantic.elevation.overlay};\n z-index: ${semantic.layer.overlay};\n overflow-y: auto;\n \n /* Position-specific styles */\n ${({ $position, $variant, $width, $height }) => {\n const isDrawer = $variant === 'drawer'\n const margin = isDrawer ? semantic.space[400] : '0'\n const borderRadius = isDrawer ? semantic.radius.md : '0'\n \n switch ($position) {\n case 'right':\n return css<{ $isExiting: boolean }>`\n top: ${margin};\n right: ${margin};\n bottom: ${margin};\n width: ${$width};\n max-width: calc(100vw - ${isDrawer ? `${semantic.space[400]} * 2` : '0px'});\n border-radius: ${borderRadius} 0 0 ${borderRadius};\n animation: ${slideInRight} ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}${({ $isExiting }) => $isExiting && exitAnimation};\n `\n case 'left':\n return css<{ $isExiting: boolean }>`\n top: ${margin};\n left: ${margin};\n bottom: ${margin};\n width: ${$width};\n max-width: calc(100vw - ${isDrawer ? `${semantic.space[400]} * 2` : '0px'});\n border-radius: 0 ${borderRadius} ${borderRadius} 0;\n animation: ${slideInLeft} ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}${({ $isExiting }) => $isExiting && exitAnimation};\n `\n case 'top':\n return css<{ $isExiting: boolean }>`\n top: ${margin};\n left: ${margin};\n right: ${margin};\n height: ${$height};\n max-height: calc(100vh - ${isDrawer ? `${semantic.space[400]} * 2` : '0px'});\n border-radius: 0 0 ${borderRadius} ${borderRadius};\n animation: ${slideInTop} ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}${({ $isExiting }) => $isExiting && exitAnimation};\n `\n case 'bottom':\n return css<{ $isExiting: boolean }>`\n bottom: ${margin};\n left: ${margin};\n right: ${margin};\n height: ${$height};\n max-height: calc(100vh - ${isDrawer ? `${semantic.space[400]} * 2` : '0px'});\n border-radius: ${borderRadius} ${borderRadius} 0 0;\n animation: ${slideInBottom} ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}${({ $isExiting }) => $isExiting && exitAnimation};\n `\n }\n }}\n\n ${reducedMotion} {\n animation: ${fadeIn} ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}${({ $isExiting }) => $isExiting && exitAnimation};\n }\n \n /* Focus trap styling */\n &:focus {\n outline: none;\n }\n\n \n /* Scrollbar styling */\n &::-webkit-scrollbar {\n width: ${semantic.space[200]};\n }\n \n &::-webkit-scrollbar-track {\n background: ${semantic.surface.raised};\n }\n \n &::-webkit-scrollbar-thumb {\n background: ${semantic.color.border.default};\n border-radius: ${semantic.radius.full};\n }\n \n &::-webkit-scrollbar-thumb:hover {\n background: ${semantic.color.fill.inverse};\n }\n`\n\nconst StyledSheetContent = styled.div`\n padding: ${semantic.space[600]};\n min-height: 100%;\n`\n\n/**\n * Sheet component for side panels and drawers\n * \n * Provides a sliding panel that appears from any edge of the screen.\n * Can be used for navigation menus, filters, forms, or additional content.\n * \n * @example\n * ```tsx\n * // Right-positioned sheet (default)\n * <Sheet isOpen={isOpen} onClose={() => setIsOpen(false)}>\n * <h2>Sheet Content</h2>\n * <p>Your content here</p>\n * </Sheet>\n * \n * // Drawer variant from bottom\n * <Sheet \n * isOpen={isOpen} \n * onClose={() => setIsOpen(false)}\n * position=\"bottom\"\n * variant=\"drawer\"\n * height=\"60vh\"\n * >\n * <h2>Mobile Menu</h2>\n * </Sheet>\n * ```\n */\nexport const Sheet = ({\n isOpen,\n onClose,\n position = 'right',\n variant = 'sheet',\n width = tokens.semantic.size.overlay.sm,\n height = tokens.semantic.size.overlay.sm,\n children,\n closeOnOverlayClick = true,\n closeOnEscape = true,\n title,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n}: SheetProps) => {\n const sheetRef = useRef<HTMLDivElement>(null)\n const previousFocusRef = useRef<HTMLElement | null>(null)\n const { isPresent, isExiting } = usePresence(isOpen)\n useInert(sheetRef, isExiting)\n \n // Focus management\n useEffect(() => {\n if (isOpen) {\n // Store previous focus\n previousFocusRef.current = document.activeElement as HTMLElement\n \n // Focus sheet\n const timer = setTimeout(() => {\n sheetRef.current?.focus()\n }, 100) // Small delay to allow animation to start\n \n // Prevent body scroll\n document.body.style.overflow = 'hidden'\n\n // A quick close cancels the pending focus, so it can't pull focus back into the exiting sheet\n return () => {\n clearTimeout(timer)\n document.body.style.overflow = ''\n }\n } else {\n // Restore previous focus\n if (previousFocusRef.current) {\n previousFocusRef.current.focus()\n }\n \n // Restore body scroll\n document.body.style.overflow = ''\n }\n \n return () => {\n document.body.style.overflow = ''\n }\n }, [isOpen])\n \n // Keyboard handling\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (closeOnEscape && event.key === 'Escape') {\n event.preventDefault()\n onClose()\n }\n \n // Focus trap\n if (event.key === 'Tab') {\n const focusableElements = sheetRef.current?.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )\n \n if (!focusableElements || focusableElements.length === 0) return\n \n const firstElement = focusableElements[0] as HTMLElement\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement\n \n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault()\n lastElement.focus()\n } else if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault()\n firstElement.focus()\n }\n }\n }\n \n // Overlay click handling\n const handleOverlayClick = (event: React.MouseEvent<HTMLDivElement>) => {\n // While exiting, the backdrop still catches clicks but doesn't close again\n if (!isExiting && closeOnOverlayClick && event.target === event.currentTarget) {\n onClose()\n }\n }\n \n // Stays mounted while the exit fade runs, hidden from assistive technology\n if (!isPresent) return null\n \n return (\n <>\n <StyledOverlay\n $isExiting={isExiting}\n onClick={handleOverlayClick}\n data-testid={dataTestId ? `${dataTestId}-overlay` : 'sheet-overlay'}\n />\n \n <StyledSheet\n ref={sheetRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={ariaLabel || title || 'Sheet dialog'}\n aria-describedby={ariaDescribedBy}\n aria-hidden={isExiting || undefined}\n tabIndex={-1}\n $position={position}\n $variant={variant}\n $width={width}\n $height={height}\n $isExiting={isExiting}\n onKeyDown={handleKeyDown}\n data-testid={dataTestId}\n >\n <StyledSheetContent>\n {children}\n </StyledSheetContent>\n </StyledSheet>\n </>\n )\n}\n\nSheet.displayName = 'Sheet'\n","import { useRef, useState, useEffect, useId, KeyboardEvent } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { forcedColors, reducedMotion } from '../../../lib/styleUtils'\n\nconst { semantic } = tokens\n\n/**\n * Props for the Slider component\n */\nexport interface SliderProps {\n /**\n * Minimum value of the slider\n * @default 0\n */\n min?: number\n \n /**\n * Maximum value of the slider\n * @default 100\n */\n max?: number\n \n /**\n * Step increment for value changes\n * @default 1\n */\n step?: number\n \n /**\n * Current value for single slider\n */\n value?: number\n \n /**\n * Default value for uncontrolled single slider\n */\n defaultValue?: number\n \n /**\n * Current values for range slider [min, max]\n */\n rangeValue?: [number, number]\n \n /**\n * Default values for uncontrolled range slider [min, max]\n */\n defaultRangeValue?: [number, number]\n \n /**\n * Callback fired when value changes (single slider)\n */\n onChange?: (value: number) => void\n \n /**\n * Callback fired when range values change (range slider)\n */\n onRangeChange?: (values: [number, number]) => void\n \n /**\n * Whether the slider is disabled\n * @default false\n */\n disabled?: boolean\n \n /**\n * Label for the slider\n */\n label?: string\n \n /**\n * Whether to show value labels\n * @default true\n */\n showValueLabel?: boolean\n \n /**\n * Custom formatter for value labels\n */\n formatValue?: (value: number) => string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n \n /**\n * Accessible name for the slider\n */\n 'aria-label'?: string\n \n /**\n * ID of element describing the slider\n */\n 'aria-describedby'?: string\n}\n\nconst StyledSliderContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap:0;\n width: 100%;\n`\n\nconst StyledLabel = styled.label<{ $disabled?: boolean }>`\n font: ${semantic.typography.label};\n color: ${({ $disabled }) => \n $disabled ? semantic.color.text.disabled : semantic.color.text.default\n };\n margin-bottom: ${semantic.space[400]};\n`\n\nconst StyledSliderTrackContainer = styled.div`\n position: relative;\n width: 100%;\n height: ${semantic.space[1000]};\n display: flex;\n align-items: center;\n`\n\nconst StyledTrack = styled.div<{ $disabled?: boolean }>`\n position: relative;\n width: 100%;\n height: ${semantic.space[100]};\n background-color: ${({ $disabled }) =>\n $disabled \n ? semantic.color.fill.disabled\n : tokens.component.track.background\n };\n border-radius: ${semantic.radius.full};\n cursor: ${({ $disabled }) => $disabled ? 'not-allowed' : 'pointer'};\n /* A vertical swipe over the track still scrolls the page */\n touch-action: pan-y;\n /* The thumbs measure their distance apart in cqw (1% of the track's width) */\n container-type: inline-size;\n\n /* Forced colours drop the track's fill, so it gets an edge; the thumb stays centred on it (decision 0038).\n A div gets no system disabled colour, so a disabled track sets GrayText itself. */\n ${forcedColors} {\n border: ${semantic.border.width.thin} solid ${({ $disabled }) => $disabled ? 'GrayText' : 'CanvasText'};\n }\n`\n\nconst StyledTrackFill = styled.div<{ $disabled?: boolean }>`\n position: absolute;\n height: 100%;\n background-color: ${({ $disabled }) =>\n $disabled\n ? semantic.color.icon.disabled\n : semantic.color.fill.emphasis\n };\n border-radius: ${semantic.radius.full};\n pointer-events: none;\n\n /* The fill is the value, so it keeps a fill in forced colours (decision 0038) */\n ${forcedColors} {\n forced-color-adjust: none;\n background-color: ${({ $disabled }) => $disabled ? 'GrayText' : 'Highlight'};\n }\n`\n\nconst StyledThumb = styled.div<{ \n $disabled?: boolean\n $active?: boolean\n /** A range slider's thumb: its hit area stops at the midpoint between the two thumbs */\n $range?: 'min' | 'max'\n}>`\n position: absolute;\n width: ${semantic.space[500]};\n height: ${semantic.space[500]};\n top: calc(-1 * ${semantic.space[200]});\n background-color: ${({ $disabled }) =>\n $disabled\n ? semantic.color.fill.disabled\n : tokens.component.slider.thumb.background\n };\n border: ${semantic.border.width.thick} solid ${({ $disabled }) =>\n $disabled\n ? semantic.color.icon.disabled\n : semantic.color.fill.emphasis\n };\n border-radius: ${semantic.radius.full};\n cursor: ${({ $disabled }) => $disabled ? 'not-allowed' : 'grab'};\n /* The thumb takes every touch gesture, so a drag moves the value instead of scrolling */\n touch-action: none;\n transform: translateX(-50%);\n /* left is the thumb's position, set from the value: it glides there, as it always has (decision 0037) */\n transition: left ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate},\n transform ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate},\n box-shadow ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate},\n background-color ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate},\n border-color ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate};\n box-shadow: ${tokens.component.slider.thumb.shadow.default};\n\n /* The pointer target (WCAG 2.5.8, decision 0039): the thumb keeps its 20px look, and an\n invisible hit area centred on it takes pointer input instead, 24px for a mouse or pen and\n 44px on a touch screen. A range slider's two hit areas stop at the midpoint between the\n thumbs (--slider-reach, set from their positions), so they never overlap and a drag always\n takes the nearer thumb. The thumb itself takes no input, as its body can overlap the other\n thumb's half. */\n pointer-events: none;\n --slider-hit: ${semantic.size.pointerTarget};\n @media (pointer: coarse) {\n --slider-hit: ${semantic.size.touchTarget};\n }\n --slider-hit-half: calc(var(--slider-hit) / 2);\n --slider-hit-start: ${({ $range }) => $range === 'max' ? 'min(var(--slider-hit-half), var(--slider-reach))' : 'var(--slider-hit-half)'};\n --slider-hit-end: ${({ $range }) => $range === 'min' ? 'min(var(--slider-hit-half), var(--slider-reach))' : 'var(--slider-hit-half)'};\n\n &::before {\n content: '';\n position: absolute;\n top: 50%;\n left: calc(50% - var(--slider-hit-start));\n width: calc(var(--slider-hit-start) + var(--slider-hit-end));\n height: var(--slider-hit);\n transform: translateY(-50%);\n pointer-events: auto;\n }\n\n /* Without container query units the midpoint can't be measured, so the hit areas stay whole\n (where they overlap, the thumb drawn later wins) */\n @supports not (width: 1cqw) {\n &::before {\n left: calc(50% - var(--slider-hit-half));\n width: var(--slider-hit);\n }\n }\n\n ${reducedMotion} {\n transition: none;\n }\n \n &:hover:not([aria-disabled=\"true\"]) {\n transform: translateX(-50%) scale(1.1);\n box-shadow: ${tokens.component.slider.thumb.shadow.hover};\n }\n \n &:focus-visible {\n outline: ${semantic.border.focus};\n outline-offset: ${semantic.border.focusOffset};\n }\n \n &:active:not([aria-disabled=\"true\"]) {\n cursor: grabbing;\n transform: translateX(-50%) scale(0.95);\n }\n \n ${({ $active }) => $active && `\n transform: translateX(-50%) scale(1.1);\n box-shadow: ${tokens.component.slider.thumb.shadow.active};\n `}\n`\n\nconst StyledValueLabel = styled.div<{ $disabled?: boolean }>`\n position: absolute;\n top: calc(-1 * ${semantic.space[800]});\n left: ${semantic.space[200]};\n transform: translateX(-50%);\n padding: ${semantic.space[100]} ${semantic.space[200]};\n background-color: ${semantic.color.fill.emphasis};\n color: ${semantic.color.text.inverse};\n font: ${semantic.typography.caption};\n border-radius: ${semantic.radius.sm};\n white-space: nowrap;\n pointer-events: none;\n opacity: ${({ $disabled }) => $disabled ? semantic.opacity.disabled : semantic.opacity.full};\n \n &::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n width: 0;\n height: 0;\n border-left: ${semantic.space[100]} solid transparent;\n border-right: ${semantic.space[100]} solid transparent;\n border-top: ${semantic.space[100]} solid ${semantic.color.fill.emphasis};\n }\n`\n\nconst StyledMinMaxLabels = styled.div`\n display: flex;\n justify-content: space-between;\n font: ${semantic.typography.body};\n color: ${semantic.color.text.muted};\n margin-top: ${semantic.space[100]};\n`\n\n/**\n * Slider component for single value or range selection\n * \n * @example\n * ```tsx\n * // Single value slider\n * <Slider \n * label=\"Volume\"\n * min={0}\n * max={100}\n * value={50}\n * onChange={(value) => console.log(value)}\n * />\n * \n * // Range slider\n * <Slider \n * label=\"Budget Range\"\n * min={0}\n * max={1000}\n * rangeValue={[200, 800]}\n * onRangeChange={(values) => console.log(values)}\n * />\n * ```\n */\nexport const Slider = ({\n min = 0,\n max = 100,\n step = 1,\n value: controlledValue,\n defaultValue,\n rangeValue: controlledRangeValue,\n defaultRangeValue,\n onChange,\n onRangeChange,\n disabled = false,\n label,\n showValueLabel = true,\n formatValue = (val) => val.toString(),\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n}: SliderProps) => {\n const generatedId = useId()\n const trackRef = useRef<HTMLDivElement>(null)\n const [activeThumb, setActiveThumb] = useState<'single' | 'min' | 'max' | null>(null)\n // Removes the document listeners of a drag in progress\n const endDragRef = useRef<(() => void) | null>(null)\n\n useEffect(() => () => endDragRef.current?.(), [])\n \n // Determine if this is a range slider\n const isRange = controlledRangeValue !== undefined || defaultRangeValue !== undefined || onRangeChange !== undefined\n \n // State for single slider\n const [internalValue, setInternalValue] = useState(defaultValue ?? min)\n const currentValue = controlledValue ?? internalValue\n \n // State for range slider\n const [internalRangeValue, setInternalRangeValue] = useState<[number, number]>(\n defaultRangeValue ?? [min, min + (max - min) / 4]\n )\n const currentRangeValue = controlledRangeValue ?? internalRangeValue\n \n // Clamp value to min/max and nearest step\n const clampValue = (val: number): number => {\n const clamped = Math.max(min, Math.min(max, val))\n const stepped = Math.round((clamped - min) / step) * step + min\n return Math.min(max, stepped)\n }\n \n // Convert pixel position to value\n const positionToValue = (clientX: number): number => {\n if (!trackRef.current) return min\n \n const rect = trackRef.current.getBoundingClientRect()\n const percent = (clientX - rect.left) / rect.width\n const rawValue = min + percent * (max - min)\n return clampValue(rawValue)\n }\n \n // Convert value to percentage for positioning\n const valueToPercent = (val: number): number => {\n return ((val - min) / (max - min)) * 100\n }\n \n // Handle single slider change\n const handleSingleChange = (newValue: number) => {\n const clampedValue = clampValue(newValue)\n setInternalValue(clampedValue)\n onChange?.(clampedValue)\n }\n \n // Handle range slider change\n const handleRangeChange = (newMin: number, newMax: number) => {\n const clampedMin = clampValue(newMin)\n const clampedMax = clampValue(newMax)\n \n // Ensure min <= max\n const orderedMin = Math.min(clampedMin, clampedMax)\n const orderedMax = Math.max(clampedMin, clampedMax)\n \n setInternalRangeValue([orderedMin, orderedMax])\n onRangeChange?.([orderedMin, orderedMax])\n }\n \n // Pointer handlers: mouse, touch and pen\n const handleTrackClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n // A click on a thumb (or the end of a drag) leaves the value where the thumb put it\n if ((event.target as HTMLElement).closest('[role=\"slider\"]')) return\n \n const newValue = positionToValue(event.clientX)\n \n if (isRange) {\n const [minVal, maxVal] = currentRangeValue\n const distToMin = Math.abs(newValue - minVal)\n const distToMax = Math.abs(newValue - maxVal)\n \n if (distToMin < distToMax) {\n handleRangeChange(newValue, maxVal)\n } else {\n handleRangeChange(minVal, newValue)\n }\n } else {\n handleSingleChange(newValue)\n }\n }\n \n const handleThumbPointerDown = (thumb: 'single' | 'min' | 'max', event: React.PointerEvent<HTMLDivElement>) => {\n if (disabled) return\n // Only the primary button drags; a touch or pen contact always counts\n if (event.pointerType === 'mouse' && event.button !== 0) return\n event.preventDefault()\n endDragRef.current?.()\n setActiveThumb(thumb)\n\n const { pointerId } = event\n // Capture keeps the drag on this thumb when the pointer leaves it, or the window\n event.currentTarget.setPointerCapture?.(pointerId)\n\n const handlePointerMove = (e: PointerEvent) => {\n if (e.pointerId !== pointerId) return\n const newValue = positionToValue(e.clientX)\n \n if (isRange) {\n const [minVal, maxVal] = currentRangeValue\n if (thumb === 'min') {\n handleRangeChange(newValue, maxVal)\n } else {\n handleRangeChange(minVal, newValue)\n }\n } else {\n handleSingleChange(newValue)\n }\n }\n \n const endDrag = () => {\n setActiveThumb(null)\n document.removeEventListener('pointermove', handlePointerMove)\n document.removeEventListener('pointerup', handlePointerEnd)\n document.removeEventListener('pointercancel', handlePointerEnd)\n endDragRef.current = null\n }\n\n // pointercancel fires when the browser takes the gesture over, so it ends the drag too\n const handlePointerEnd = (e: PointerEvent) => {\n if (e.pointerId === pointerId) endDrag()\n }\n \n document.addEventListener('pointermove', handlePointerMove)\n document.addEventListener('pointerup', handlePointerEnd)\n document.addEventListener('pointercancel', handlePointerEnd)\n endDragRef.current = endDrag\n }\n \n // Keyboard navigation\n const handleKeyDown = (thumb: 'single' | 'min' | 'max') => (event: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return\n \n let valueChange = 0\n \n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n valueChange = step\n event.preventDefault()\n break\n case 'ArrowLeft':\n case 'ArrowDown':\n valueChange = -step\n event.preventDefault()\n break\n case 'PageUp':\n valueChange = step * 10\n event.preventDefault()\n break\n case 'PageDown':\n valueChange = -step * 10\n event.preventDefault()\n break\n case 'Home':\n if (isRange) {\n const [minVal, maxVal] = currentRangeValue\n if (thumb === 'min') {\n handleRangeChange(min, maxVal)\n } else {\n handleRangeChange(minVal, min)\n }\n } else {\n handleSingleChange(min)\n }\n event.preventDefault()\n return\n case 'End':\n if (isRange) {\n const [minVal, maxVal] = currentRangeValue\n if (thumb === 'min') {\n handleRangeChange(max, maxVal)\n } else {\n handleRangeChange(minVal, max)\n }\n } else {\n handleSingleChange(max)\n }\n event.preventDefault()\n return\n default:\n return\n }\n \n if (isRange) {\n const [minVal, maxVal] = currentRangeValue\n if (thumb === 'min') {\n handleRangeChange(minVal + valueChange, maxVal)\n } else {\n handleRangeChange(minVal, maxVal + valueChange)\n }\n } else {\n handleSingleChange(currentValue + valueChange)\n }\n }\n \n // Calculate positions\n const singlePercent = valueToPercent(currentValue)\n const [minPercent, maxPercent] = [\n valueToPercent(currentRangeValue[0]),\n valueToPercent(currentRangeValue[1])\n ]\n \n return (\n <StyledSliderContainer data-testid={dataTestId}>\n {label && (\n <StyledLabel htmlFor={generatedId} $disabled={disabled}>\n {label}\n </StyledLabel>\n )}\n \n <StyledSliderTrackContainer>\n <StyledTrack\n ref={trackRef}\n onClick={handleTrackClick}\n $disabled={disabled}\n >\n {isRange ? (\n <StyledTrackFill\n $disabled={disabled}\n style={{\n left: `${minPercent}%`,\n width: `${maxPercent - minPercent}%`,\n }}\n />\n ) : (\n <StyledTrackFill\n $disabled={disabled}\n style={{\n left: 0,\n width: `${singlePercent}%`,\n }}\n />\n )}\n \n {isRange ? (\n <>\n {/* Min thumb */}\n <StyledThumb\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-label={ariaLabel ? `${ariaLabel} minimum` : 'Minimum value'}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentRangeValue[0]}\n aria-valuetext={formatValue(currentRangeValue[0])}\n aria-disabled={disabled}\n aria-describedby={ariaDescribedBy}\n $disabled={disabled}\n $active={activeThumb === 'min'}\n $range=\"min\"\n style={{ left: `${minPercent}%`, '--slider-reach': `${(maxPercent - minPercent) / 2}cqw` } as React.CSSProperties}\n onPointerDown={(event) => handleThumbPointerDown('min', event)}\n onKeyDown={handleKeyDown('min')}\n >\n {showValueLabel && (\n <StyledValueLabel $disabled={disabled}>\n {formatValue(currentRangeValue[0])}\n </StyledValueLabel>\n )}\n </StyledThumb>\n \n {/* Max thumb */}\n <StyledThumb\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-label={ariaLabel ? `${ariaLabel} maximum` : 'Maximum value'}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentRangeValue[1]}\n aria-valuetext={formatValue(currentRangeValue[1])}\n aria-disabled={disabled}\n aria-describedby={ariaDescribedBy}\n $disabled={disabled}\n $active={activeThumb === 'max'}\n $range=\"max\"\n style={{ left: `${maxPercent}%`, '--slider-reach': `${(maxPercent - minPercent) / 2}cqw` } as React.CSSProperties}\n onPointerDown={(event) => handleThumbPointerDown('max', event)}\n onKeyDown={handleKeyDown('max')}\n >\n {showValueLabel && (\n <StyledValueLabel $disabled={disabled}>\n {formatValue(currentRangeValue[1])}\n </StyledValueLabel>\n )}\n </StyledThumb>\n </>\n ) : (\n <StyledThumb\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-label={ariaLabel || label || 'Slider value'}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentValue}\n aria-valuetext={formatValue(currentValue)}\n aria-disabled={disabled}\n aria-describedby={ariaDescribedBy}\n $disabled={disabled}\n $active={activeThumb === 'single'}\n style={{ left: `${singlePercent}%` }}\n onPointerDown={(event) => handleThumbPointerDown('single', event)}\n onKeyDown={handleKeyDown('single')}\n >\n {showValueLabel && (\n <StyledValueLabel $disabled={disabled}>\n {formatValue(currentValue)}\n </StyledValueLabel>\n )}\n </StyledThumb>\n )}\n </StyledTrack>\n </StyledSliderTrackContainer>\n \n <StyledMinMaxLabels>\n <span>{formatValue(min)}</span>\n <span>{formatValue(max)}</span>\n </StyledMinMaxLabels>\n </StyledSliderContainer>\n )\n}\n\nSlider.displayName = 'Slider'\n","import { useState, useRef, useEffect, KeyboardEvent } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { forcedColors } from '../../../lib/styleUtils'\n\nconst { semantic } = tokens\n\n/**\n * Individual tab configuration\n */\nexport interface Tab {\n /**\n * Unique identifier for the tab\n */\n id: string\n \n /**\n * Tab label text\n */\n label: string\n \n /**\n * Optional badge count to display\n */\n badge?: number\n \n /**\n * Whether this tab is disabled\n * @default false\n */\n disabled?: boolean\n}\n\n/**\n * Props for the TabBar component\n */\nexport interface TabBarProps {\n /**\n * Array of tab configurations\n */\n tabs: Tab[]\n \n /**\n * Currently active tab ID\n */\n activeTab: string\n \n /**\n * Callback when tab changes\n */\n onTabChange: (tabId: string) => void\n \n /**\n * Accessible label for the tab list\n */\n 'aria-label'?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\ninterface StyledTabProps {\n $isActive: boolean\n $disabled: boolean\n}\n\nconst StyledTabList = styled.div`\n display: flex;\n align-items: center;\n border-bottom: ${semantic.border.width.thin} solid ${semantic.color.border.default};\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n \n &::-webkit-scrollbar {\n height: ${tokens.component.tabBar.scrollbar.height};\n }\n \n &::-webkit-scrollbar-track {\n background: ${semantic.surface.raised};\n }\n \n &::-webkit-scrollbar-thumb {\n background: ${semantic.color.border.default};\n border-radius: ${semantic.radius.sm};\n }\n`\n\nconst StyledTab = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledTabProps>`\n display: inline-flex;\n align-items: center;\n gap: ${semantic.space[200]};\n padding: ${semantic.space[300]} ${semantic.space[400]};\n font: ${tokens.component.button.sizes.medium.font};\n white-space: nowrap;\n cursor: ${props => props.$disabled ? 'not-allowed' : 'pointer'};\n border: none;\n background: transparent;\n transition: ${semantic.motion.transition.feedback};\n position: relative;\n \n /* Selected tab: the light-blue selected treatment plus a blue underline (decisions 0016, 0020).\n The text darkens with the fill on hover and press so every state stays at least 4.5:1. */\n border-radius: ${semantic.radius.sm} ${semantic.radius.sm} 0 0;\n background-color: ${props => props.$isActive\n ? semantic.color.fill['accent-muted']\n : 'transparent'\n };\n color: ${props => props.$isActive\n ? semantic.color.text.accent\n : semantic.color.text.muted\n };\n\n &::after {\n content: '';\n position: absolute;\n bottom: -1px;\n left: 0;\n right: 0;\n height: ${semantic.border.width.thick};\n background-color: ${props => props.$isActive\n ? semantic.color.fill.accent\n : 'transparent'\n };\n transition: ${semantic.motion.transition.feedback};\n }\n\n /* Forced colours drop the fill, so the selected tab's underline carries its state in the\n system selection colour (decision 0038) */\n ${forcedColors} {\n &::after {\n forced-color-adjust: none;\n background-color: ${props => props.$isActive ? 'Highlight' : 'transparent'};\n }\n }\n\n &:hover:not(:disabled) {\n background-color: ${props => props.$isActive\n ? semantic.color.fill['accent-muted-hover']\n : 'transparent'\n };\n color: ${props => props.$isActive\n ? semantic.color.text.accent\n : semantic.color.text.default\n };\n }\n\n &:active:not(:disabled) {\n background-color: ${props => props.$isActive\n ? semantic.color.fill['accent-muted-pressed']\n : 'transparent'\n };\n color: ${props => props.$isActive\n ? semantic.color.text.accent\n : semantic.color.text.default\n };\n }\n\n /* Disabled state */\n opacity: ${props => props.$disabled ? '0.5' : '1'};\n \n /* Focus state */\n &:focus-visible {\n outline: ${semantic.border.focus};\n outline-offset: ${semantic.border.focusOffset};\n z-index: 1;\n }\n\n`\n\nconst StyledBadge = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: ${tokens.component.tabBar.badge.size};\n height: ${tokens.component.tabBar.badge.size};\n padding: 0 ${semantic.space[100]};\n font: ${tokens.component.tabBar.badge.typography};\n font-weight: ${tokens.component.tabBar.badge.fontWeight};\n border-radius: ${semantic.radius.full};\n background-color: ${semantic.color.fill.accent};\n color: ${semantic.color.text.inverse};\n`\n\n/**\n * TabBar component for tabbed navigation\n * \n * Provides accessible tab navigation with an underline style, keyboard support,\n * and optional badge counts. Follows ARIA tablist pattern.\n * \n * @example\n * ```tsx\n * const [activeTab, setActiveTab] = useState('all')\n * \n * <TabBar\n * tabs={[\n * { id: 'all', label: 'All', badge: 42 },\n * { id: 'pending', label: 'Pending', badge: 5 },\n * { id: 'completed', label: 'Completed' }\n * ]}\n * activeTab={activeTab}\n * onTabChange={setActiveTab}\n * />\n * ```\n */\nexport const TabBar: React.FC<TabBarProps> = ({\n tabs,\n activeTab,\n onTabChange,\n 'aria-label': ariaLabel = 'Tab navigation',\n 'data-testid': dataTestId\n}) => {\n const tabRefs = useRef<(HTMLButtonElement | null)[]>([])\n const [focusedIndex, setFocusedIndex] = useState<number>(() => \n tabs.findIndex(tab => tab.id === activeTab)\n )\n \n // Update focused index when active tab changes externally\n useEffect(() => {\n const newIndex = tabs.findIndex(tab => tab.id === activeTab)\n if (newIndex !== -1) {\n setFocusedIndex(newIndex)\n }\n }, [activeTab, tabs])\n \n const handleTabClick = (tab: Tab, index: number) => {\n if (!tab.disabled) {\n onTabChange(tab.id)\n setFocusedIndex(index)\n }\n }\n \n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>, index: number) => {\n let newIndex = index\n \n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n // Find previous non-disabled tab\n newIndex = index - 1\n while (newIndex >= 0 && tabs[newIndex].disabled) {\n newIndex--\n }\n if (newIndex < 0) {\n // Wrap to last non-disabled tab\n newIndex = tabs.length - 1\n while (newIndex > index && tabs[newIndex].disabled) {\n newIndex--\n }\n }\n break\n \n case 'ArrowRight':\n event.preventDefault()\n // Find next non-disabled tab\n newIndex = index + 1\n while (newIndex < tabs.length && tabs[newIndex].disabled) {\n newIndex++\n }\n if (newIndex >= tabs.length) {\n // Wrap to first non-disabled tab\n newIndex = 0\n while (newIndex < index && tabs[newIndex].disabled) {\n newIndex++\n }\n }\n break\n \n case 'Home':\n event.preventDefault()\n // Focus first non-disabled tab\n newIndex = 0\n while (newIndex < tabs.length && tabs[newIndex].disabled) {\n newIndex++\n }\n break\n \n case 'End':\n event.preventDefault()\n // Focus last non-disabled tab\n newIndex = tabs.length - 1\n while (newIndex >= 0 && tabs[newIndex].disabled) {\n newIndex--\n }\n break\n \n default:\n return\n }\n \n if (newIndex !== index && newIndex >= 0 && newIndex < tabs.length) {\n setFocusedIndex(newIndex)\n tabRefs.current[newIndex]?.focus()\n }\n }\n \n return (\n <StyledTabList\n role=\"tablist\"\n aria-label={ariaLabel}\n data-testid={dataTestId}\n >\n {tabs.map((tab, index) => (\n <StyledTab\n key={tab.id}\n ref={el => { tabRefs.current[index] = el }}\n $isActive={tab.id === activeTab}\n $disabled={tab.disabled || false}\n role=\"tab\"\n aria-selected={tab.id === activeTab}\n aria-disabled={tab.disabled || false}\n tabIndex={index === focusedIndex ? 0 : -1}\n disabled={tab.disabled}\n onClick={() => handleTabClick(tab, index)}\n onKeyDown={(e) => handleKeyDown(e, index)}\n data-testid={`${dataTestId}-tab-${tab.id}`}\n >\n {tab.label}\n {typeof tab.badge === 'number' && tab.badge > 0 && (\n <StyledBadge \n aria-label={`${tab.badge} items`}\n >\n {tab.badge > 99 ? '99+' : tab.badge}\n </StyledBadge>\n )}\n </StyledTab>\n ))}\n </StyledTabList>\n )\n}\n\nTabBar.displayName = 'TabBar'\n","import { InputHTMLAttributes, forwardRef, useId } from 'react'\nimport styled from 'styled-components'\nimport { StyledInputBase } from './InputBase'\nimport { Stack } from '../../atoms/Stack/Stack'\nimport tokens from '@/lib/cssTokens'\n\nconst { field } = tokens.component\n// Gaps come from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst { space } = tokens.semantic\n\n/**\n * Props for the TextField component\n */\nexport interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n /**\n * Label text for the input\n */\n label?: string\n \n /**\n * Helper text displayed below the input\n */\n helperText?: string\n \n /**\n * Error message to display\n */\n error?: string\n \n /**\n * Whether the field is required\n * @default false\n */\n required?: boolean\n \n /**\n * Whether the input is disabled\n * @default false\n */\n disabled?: boolean\n \n /**\n * Input type\n * @default 'text'\n */\n type?: 'text' | 'email' | 'tel' | 'url' | 'search'\n \n /**\n * Unique identifier for the input\n * Generated automatically if not provided\n */\n id?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\nconst StyledFieldContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${space[200]};\n width: 100%;\n`\n\nconst StyledLabel = styled.label`\n display: flex;\n align-items: center;\n gap: ${space[100]};\n font: ${field.label.typography};\n color: ${field.label.color};\n\n &[data-disabled='true'] {\n color: ${field.label.colorDisabled};\n }\n`\n\nconst StyledRequiredIndicator = styled.span`\n color: ${field.requiredIndicator.color};\n font-weight: ${field.requiredIndicator.fontWeight};\n`\n\nconst StyledHelperText = styled.div<{ $hasError?: boolean }>`\n font: ${field.helperText.typography};\n color: ${({ $hasError }) =>\n $hasError\n ? field.helperText.colorError\n : field.helperText.color\n };\n`\n\n/**\n * TextField component for text input with label, helper text, and error states\n * \n * @example\n * ```tsx\n * <TextField \n * label=\"Email\" \n * type=\"email\"\n * helperText=\"We'll never share your email\"\n * required\n * />\n * ```\n */\nexport const TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n label,\n helperText,\n error,\n required = false,\n disabled = false,\n type = 'text',\n id: providedId,\n 'data-testid': dataTestId,\n ...inputProps\n },\n ref\n ) => {\n // Generate unique ID if not provided\n const generatedId = useId()\n const id = providedId || generatedId\n \n // IDs for ARIA relationships\n const errorId = error ? `${id}-error` : undefined\n const helperId = helperText && !error ? `${id}-helper` : undefined\n const describedBy = [errorId, helperId].filter(Boolean).join(' ') || undefined\n \n const hasError = Boolean(error)\n \n return (\n <StyledFieldContainer data-testid={dataTestId}>\n {label && (\n <StyledLabel \n htmlFor={id}\n data-disabled={disabled}\n >\n {label}\n {required && (\n <StyledRequiredIndicator aria-label=\"required\">\n *\n </StyledRequiredIndicator>\n )}\n </StyledLabel>\n )}\n \n <StyledInputBase\n ref={ref}\n id={id}\n type={type}\n disabled={disabled}\n required={required}\n aria-required={required}\n aria-invalid={hasError}\n aria-describedby={describedBy}\n $hasError={hasError}\n $disabled={disabled}\n {...inputProps}\n />\n \n {error && (\n <StyledHelperText\n id={errorId}\n role=\"alert\"\n aria-live=\"polite\"\n $hasError={true}\n >\n {error}\n </StyledHelperText>\n )}\n \n {helperText && !error && (\n <StyledHelperText id={helperId}>\n {helperText}\n </StyledHelperText>\n )}\n </StyledFieldContainer>\n )\n }\n)\n\nTextField.displayName = 'TextField'\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Avatar } from '../../atoms/Avatar'\nimport { StatusLabel } from '../../atoms/StatusLabel'\nimport { CategoryLabel, type CategoryColor } from '../../atoms/CategoryLabel'\nimport { MoneyDisplay, MoneyDisplayVariant } from '../../atoms/MoneyDisplay'\nimport { Icon, IconName } from '../../atoms/Icon'\nimport { DateFormatter } from '../../atoms/DateFormatter'\nimport { Typography } from '../../atoms/Typography'\nimport { Stack } from '../../atoms/Stack'\nimport tokens from '../../../lib/cssTokens'\nimport { interactiveRow } from '../../../lib/styleUtils'\n\nexport type TransactionStatus = 'completed' | 'pending' | 'failed'\nexport type TransactionCategory = 'shopping' | 'dining' | 'transport' | 'entertainment' | 'bills' | 'other'\n\nexport interface TransactionListItemProps {\n /** Merchant or transaction name */\n merchant: string\n \n /** Transaction amount (positive for income, negative for expense) */\n amount: number\n \n /** Transaction date */\n date: Date | string\n \n /** Transaction status */\n status?: TransactionStatus\n \n /** Transaction category */\n category?: TransactionCategory\n \n /** Optional merchant logo URL */\n merchantLogo?: string\n \n /** Optional description or note */\n description?: string\n \n /** Whether this transaction has a receipt attached */\n hasReceipt?: boolean\n \n /** Whether this transaction has notes attached */\n hasNote?: boolean\n \n /** Currency code */\n currency?: string\n \n /** Click handler for the transaction */\n onClick?: () => void\n \n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\ninterface StyledContainerProps {\n $clickable?: boolean\n}\n\nconst StyledContainer = styled.div<StyledContainerProps>`\n display: flex;\n align-items: center;\n min-height: ${tokens.semantic.size.row.lg};\n padding: ${tokens.semantic.space.inset.md}; /* follows density with the row's height (decision 0051) */\n background-color: ${tokens.semantic.surface.base};\n border-bottom: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border.default};\n gap: ${tokens.semantic.space[300]};\n transition: background-color ${tokens.semantic.motion.duration.moderate} ${tokens.semantic.motion.easing.decelerate};\n \n /* A clickable row uses the shared row states (decision 0030) */\n ${({ $clickable }) => $clickable && `\n cursor: pointer;\n ${interactiveRow()}\n \n &:focus-visible {\n outline: ${tokens.semantic.border.focus};\n outline-offset: calc(-1 * ${tokens.semantic.border.focusOffset});\n }\n `}\n`\n\nconst StyledAvatarSection = styled.div`\n flex-shrink: 0;\n`\n\nconst StyledMainContent = styled.div`\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: none;\n`\n\nconst StyledTopRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${tokens.semantic.space[200]};\n`\n\nconst StyledMerchantSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.space[200]};\n min-width: 0;\n flex: 1;\n`\n\nconst StyledBottomRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${tokens.semantic.space[200]};\n`\n\nconst StyledMetadata = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.space[200]};\n`\n\nconst StyledIconIndicator = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.space[100]};\n color: ${tokens.semantic.color.icon.muted};\n`\n\nconst StyledTruncatedText = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\n// Map categories to CategoryLabel configurations\nconst categoryConfig: Record<TransactionCategory, { color: CategoryColor; icon: IconName; label: string }> = {\n // Display colours carry no meaning (decision 0043); five coloured categories share four colours,\n // so the icon and label tell dining and bills apart\n shopping: { color: 'magenta', icon: 'paper', label: 'Shopping' },\n dining: { color: 'rose', icon: 'paper', label: 'Dining' },\n transport: { color: 'periwinkle', icon: 'paper', label: 'Transport' },\n entertainment: { color: 'olive', icon: 'star', label: 'Entertainment' },\n bills: { color: 'rose', icon: 'paper', label: 'Bills' },\n other: { color: 'gray', icon: 'paper', label: 'Other' }\n}\n\n\n/**\n * TransactionListItem component\n * \n * Displays a single transaction in a list with merchant info, amount, date,\n * status, and optional metadata (category, receipt, notes). Minimum height 72px\n * with interactive states for clickable items.\n * \n * Composes: Avatar, CategoryLabel, StatusLabel, MoneyDisplay, Icon, DateFormatter, Typography, Stack\n */\nexport const TransactionListItem: React.FC<TransactionListItemProps> = ({\n merchant,\n amount,\n date,\n status = 'completed',\n category,\n merchantLogo,\n description,\n hasReceipt = false,\n hasNote = false,\n currency = 'AUD',\n onClick,\n 'data-testid': dataTestId\n}) => {\n const isClickable = !!onClick\n \n // Determine amount variant\n const amountVariant: MoneyDisplayVariant = amount > 0 ? 'positive' : amount < 0 ? 'negative' : 'default'\n \n // Get category configuration\n const categoryData = category ? categoryConfig[category] : undefined\n \n \n const handleClick = () => {\n if (isClickable && onClick) {\n onClick()\n }\n }\n \n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (isClickable && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n onClick?.()\n }\n }\n \n return (\n <StyledContainer\n $clickable={isClickable}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n tabIndex={isClickable ? 0 : undefined}\n role={isClickable ? 'button' : undefined}\n // The name replaces the row's content, so it repeats a status the row shows (pending, failed)\n aria-label={isClickable ? `${merchant} transaction, ${amount < 0 ? 'expense' : 'income'} of ${Math.abs(amount)}${status === 'completed' ? '' : `, ${status}`}` : undefined}\n data-testid={dataTestId}\n >\n <StyledAvatarSection>\n <Avatar \n name={merchant}\n picture={merchantLogo}\n size=\"md\"\n />\n </StyledAvatarSection>\n \n <StyledMainContent>\n <StyledTopRow>\n <StyledMerchantSection>\n <StyledTruncatedText>\n <Typography variant=\"body\">\n {merchant}\n </Typography>\n </StyledTruncatedText>\n {categoryData && (\n <CategoryLabel\n color={categoryData.color}\n icon={categoryData.icon}\n size=\"medium\"\n variant=\"minimal\"\n aria-label={`Category: ${categoryData.label}`}\n >\n {categoryData.label}\n </CategoryLabel>\n )}\n {/* The status pattern shows a status that needs a look (decision 0045 §4): failed with its\n shape and label, pending as neutral text. Completed is the quiet default. */}\n {status !== 'completed' && (\n <StatusLabel status={status} size=\"small\" liveRegion={false} />\n )}\n </StyledMerchantSection>\n \n <MoneyDisplay\n amount={amount}\n currency={currency}\n variant={amountVariant}\n size=\"medium\"\n weight=\"medium\"\n showSign\n data-testid={dataTestId ? `${dataTestId}-amount` : undefined}\n />\n </StyledTopRow>\n \n <StyledBottomRow>\n <StyledMetadata>\n <DateFormatter \n dateString={typeof date === 'string' ? date : date.toISOString()} \n mode=\"smart\"\n data-testid={dataTestId ? `${dataTestId}-date` : undefined}\n />\n {description && (\n <StyledTruncatedText>\n <Typography \n variant=\"small\" \n color=\"subdued\"\n >\n • {description}\n </Typography>\n </StyledTruncatedText>\n )}\n </StyledMetadata>\n \n {(hasReceipt || hasNote) && (\n <StyledIconIndicator>\n {hasReceipt && (\n <Icon name=\"fileDocSearch\" size=\"xs\" aria-label=\"Has receipt\" />\n )}\n {hasNote && (\n <Icon name=\"paper\" size=\"xs\" aria-label=\"Has note\" />\n )}\n </StyledIconIndicator>\n )}\n </StyledBottomRow>\n </StyledMainContent>\n </StyledContainer>\n )\n}\n","import React, { useEffect } from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { interactiveRow } from '../../../lib/styleUtils'\nimport { Avatar } from '../../atoms/Avatar'\nimport { Icon } from '../../atoms/Icon'\nimport { Tooltip } from '../../atoms/Tooltip'\nimport { Menu, MenuDivider, MenuGroup, MenuItemRadio } from '../Menu'\nimport { useSidebarNav } from '../SidebarNavItem/SidebarNavContext'\n\nconst { semantic } = tokens\nconst { space, color, motion, radius, size, border, typography } = semantic\n\nexport interface Workspace {\n /** Identifies the workspace in `value` and `onChange` */\n id: string\n /** The workspace's name */\n name: string\n /** The workspace's logo or picture, shown in its Avatar */\n picture?: string\n /** Secondary text in the menu, such as the plan */\n description?: string\n}\n\nexport interface WorkspaceSwitcherProps {\n /** The workspaces to choose from */\n workspaces: Workspace[]\n /** The current workspace's id */\n value: string\n /** Called with a workspace's id when it's chosen */\n onChange: (id: string) => void\n /**\n * The label of the workspaces group in the menu.\n * @default 'Workspaces'\n */\n label?: string\n /**\n * Actions after the workspaces, such as `<MenuItem>Create workspace</MenuItem>`. They can use\n * everything a Menu item supports.\n */\n children?: React.ReactNode\n /** Test identifier for the trigger */\n 'data-testid'?: string\n}\n\nconst Trigger = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $collapsed: boolean }>`\n display: flex;\n align-items: center;\n gap: ${space[200]};\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n min-height: ${size.row.sm};\n padding: ${space.inset.xs} ${space.inset.sm};\n border: none;\n border-radius: ${radius.sm};\n background: none;\n font: ${typography.label};\n color: ${color.text.default};\n text-align: left;\n cursor: pointer;\n transition: background-color ${motion.duration.fast} ${motion.easing.decelerate};\n\n ${interactiveRow()}\n\n ${({ $collapsed }) =>\n $collapsed &&\n css`\n justify-content: center;\n padding: ${space.inset.xs};\n `}\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: ${border.focus};\n outline-offset: calc(-1 * ${border.focusOffset});\n }\n`\n\nconst Name = styled.span`\n flex: 1;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`\n\nconst Decoration = styled.span`\n display: inline-flex;\n flex-shrink: 0;\n color: ${color.text.muted};\n`\n\n/**\n * Shows the current workspace and switches between workspaces (#330), from SidebarNav's header.\n * Built on Menu: a labelled group of the workspaces as radio items, then any actions.\n */\nexport const WorkspaceSwitcher = ({\n workspaces,\n value,\n onChange,\n label = 'Workspaces',\n children,\n 'data-testid': dataTestId,\n}: WorkspaceSwitcherProps) => {\n const { collapsed } = useSidebarNav()\n const match = workspaces.find((workspace) => workspace.id === value)\n const fallback = !match && workspaces.length > 0 ? workspaces[0].name : undefined\n // Showing the first keeps the header usable, but the app's value is wrong, so say so, once per value\n useEffect(() => {\n if (fallback) console.warn(`WorkspaceSwitcher: no workspace has the id \"${value}\"; showing \"${fallback}\"`)\n }, [value, fallback])\n const current = match ?? workspaces[0]\n if (!current) return null\n\n const trigger = (\n <Trigger\n type=\"button\"\n $collapsed={collapsed}\n // In the rail only the Avatar shows, so the name moves to aria-label\n aria-label={collapsed ? current.name : undefined}\n data-testid={dataTestId}\n >\n {/* Avatar names itself as an image; the button's name is the workspace's */}\n <Decoration aria-hidden=\"true\">\n <Avatar name={current.name} picture={current.picture} size=\"xs\" />\n </Decoration>\n {!collapsed && (\n <>\n <Name>{current.name}</Name>\n <Decoration aria-hidden=\"true\">\n <Icon name=\"caretDown\" size=\"sm\" iconColor=\"inherit\" />\n </Decoration>\n </>\n )}\n </Trigger>\n )\n\n return (\n <Menu\n trigger={collapsed ? <Tooltip text={current.name} side=\"right\">{trigger}</Tooltip> : trigger}\n side={collapsed ? 'right' : 'bottom'}\n align=\"start\"\n >\n <MenuGroup label={label}>\n {workspaces.map((workspace) => (\n <MenuItemRadio\n key={workspace.id}\n checked={workspace.id === current.id}\n // Choosing the current workspace again changes nothing\n onSelect={() => workspace.id !== current.id && onChange(workspace.id)}\n icon={<Avatar name={workspace.name} picture={workspace.picture} size=\"xs\" />}\n description={workspace.description}\n textValue={workspace.name}\n >\n {workspace.name}\n </MenuItemRadio>\n ))}\n </MenuGroup>\n {children && (\n <>\n <MenuDivider />\n <MenuGroup>{children}</MenuGroup>\n </>\n )}\n </Menu>\n )\n}\n\nWorkspaceSwitcher.displayName = 'WorkspaceSwitcher'\n","import React, { useRef, useState } from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { forcedColors, reducedMotion } from '../../../lib/styleUtils'\nimport { IconButton } from '../../atoms/IconButton'\nimport { Tooltip } from '../../atoms/Tooltip'\nimport { isKeyboardFocus } from '../../../lib/keyboardFocus'\nimport { SidebarNavContext, type SidebarNavContextValue } from '../../molecules/SidebarNavItem/SidebarNavContext'\n\nconst { semantic, component } = tokens\nconst { space, motion, radius, border, color } = semantic\nconst { width: widths } = component.sidebarNav\n\nexport type SidebarNavWidth = 'narrow' | 'default' | 'wide'\n\nexport interface SidebarNavProps {\n /** Names the navigation landmark, such as \"Main\" or \"Workspace\" */\n label: string\n /**\n * The body: SidebarNavItems and SidebarNavSections, in order, wrapped in components or Fragments\n * if you like. It's one list, and scrolls when it's too tall.\n */\n children: React.ReactNode\n /** Content above the body, such as a WorkspaceSwitcher. The collapse toggle sits beside it. */\n header?: React.ReactNode\n /** Content below the body, such as an upgrade prompt. Hidden in the rail. */\n footer?: React.ReactNode\n /**\n * The expanded width. Collapsed, it's always the rail.\n * @default 'default'\n */\n width?: SidebarNavWidth\n /** Whether it's the icon rail (controlled). Use with `onCollapsedChange`. */\n collapsed?: boolean\n /**\n * Whether it starts as the rail (uncontrolled). Saving the state between visits is the\n * product's job.\n * @default false\n */\n defaultCollapsed?: boolean\n /** Called when the toggle collapses or expands it */\n onCollapsedChange?: (collapsed: boolean) => void\n /**\n * Whether it has a collapse toggle. Turn it off where it can't collapse, such as inside a Sheet.\n * @default true\n */\n collapsible?: boolean\n /**\n * A router's link component for internal URLs, such as Next's `Link`, used by every item\n * (decision 0008). Without one, items render plain links.\n */\n linkComponent?: SidebarNavContextValue['linkComponent']\n /** Test identifier for the nav */\n 'data-testid'?: string\n}\n\nconst Nav = styled.nav.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $width: string }>`\n display: flex;\n flex-direction: column;\n gap: ${space[200]};\n box-sizing: border-box;\n /* Its width is set; in a flex app shell it mustn't shrink to make room */\n flex-shrink: 0;\n width: ${({ $width }) => $width};\n height: 100%;\n padding: ${space[200]};\n overflow: hidden;\n /* Quiet chrome (P1): the page's own background, with a thin edge */\n border-right: ${border.default};\n transition: width ${motion.duration.moderate} ${motion.easing.standard};\n\n ${reducedMotion} {\n transition: none;\n }\n`\n\nconst Header = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $collapsed: boolean }>`\n display: flex;\n align-items: center;\n gap: ${space[100]};\n\n ${({ $collapsed }) =>\n $collapsed &&\n css`\n flex-direction: column;\n `}\n`\n\nconst HeaderContent = styled.div`\n flex: 1;\n min-width: 0;\n width: 100%;\n`\n\nconst Body = styled.div`\n flex: 1;\n min-height: 0;\n overflow-x: hidden;\n overflow-y: auto;\n`\n\n// The rows and the highlight share this box, so the highlight scrolls with the rows\nconst Content = styled.div`\n position: relative;\n isolation: isolate;\n display: flex;\n flex-direction: column;\n\n & [data-sidebar-row] {\n position: relative;\n z-index: 1;\n }\n`\n\nconst List = styled.ul`\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n flex-direction: column;\n`\n\ninterface HighlightBox {\n top: number\n left: number\n width: number\n height: number\n}\n\n// One highlight glides to the hovered or keyboard-focused row (0053): the row hover colour,\n// moving over duration.fast. It jumps under reduced motion and hides in forced colours, where\n// rows outline themselves instead.\nconst Highlight = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $visible: boolean; $instant: boolean }>`\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n border-radius: ${radius.sm};\n background-color: ${color.fill.muted};\n pointer-events: none;\n opacity: ${({ $visible }) => ($visible ? 1 : 0)};\n transition: ${({ $instant }) =>\n $instant\n ? `opacity ${motion.duration.fast} ${motion.easing.decelerate}`\n : `transform ${motion.duration.fast} ${motion.easing.decelerate},\n height ${motion.duration.fast} ${motion.easing.decelerate},\n width ${motion.duration.fast} ${motion.easing.decelerate},\n opacity ${motion.duration.fast} ${motion.easing.decelerate}`};\n\n ${reducedMotion} {\n transition: opacity ${motion.duration.fast} ${motion.easing.decelerate};\n }\n\n ${forcedColors} {\n display: none;\n }\n`\n\nconst Footer = styled.div`\n flex-shrink: 0;\n`\n\n/**\n * A product's sidebar navigation (#331): a header, a scrolling body of items and sections, and a\n * footer, that collapses to an icon rail. Row heights follow density (0051); the width is a prop.\n * On small screens, place it in a Sheet with `collapsible={false}`.\n */\nexport const SidebarNav = ({\n label,\n children,\n header,\n footer,\n width = 'default',\n collapsed: collapsedProp,\n defaultCollapsed = false,\n onCollapsedChange,\n collapsible = true,\n linkComponent,\n 'data-testid': dataTestId,\n}: SidebarNavProps) => {\n const [uncontrolledCollapsed, setUncontrolledCollapsed] = useState(defaultCollapsed)\n const isControlled = collapsedProp !== undefined\n const collapsed = collapsible && (isControlled ? collapsedProp : uncontrolledCollapsed)\n\n const contentRef = useRef<HTMLDivElement>(null)\n const [highlight, setHighlight] = useState<{ box: HighlightBox | null; visible: boolean; instant: boolean }>({\n box: null,\n visible: false,\n instant: true,\n })\n\n const toggle = () => {\n const next = !collapsed\n if (!isControlled) setUncontrolledCollapsed(next)\n onCollapsedChange?.(next)\n }\n\n const hide = () => setHighlight((state) => ({ ...state, visible: false }))\n\n // Collapsing or expanding moves every row, so the highlight's box is stale: hide it until the\n // pointer or focus finds a row again (adjusted during render, React's pattern for a prop change)\n const [layout, setLayout] = useState(collapsed)\n if (layout !== collapsed) {\n setLayout(collapsed)\n setHighlight((state) => ({ ...state, visible: false, instant: true }))\n }\n\n // Move the highlight to a row, or step aside for the current page's row, which has its own fill\n const highlightRow = (target: EventTarget | null) => {\n const content = contentRef.current\n const row = target instanceof Element ? target.closest<HTMLElement>('[data-sidebar-row]') : null\n if (!content || !row || !content.contains(row) || row.getAttribute('aria-current') === 'page') return hide()\n const outer = content.getBoundingClientRect()\n const box = row.getBoundingClientRect()\n setHighlight((state) => ({\n box: { top: box.top - outer.top, left: box.left - outer.left, width: box.width, height: box.height },\n visible: true,\n // Appearing, it starts at the row rather than sliding from where it last was\n instant: !state.visible,\n }))\n }\n\n const context: SidebarNavContextValue = { collapsed, linkComponent, glide: true, inNav: true }\n\n const toggleLabel = collapsed ? 'Expand sidebar' : 'Collapse sidebar'\n const toggleButton = collapsible && (\n <Tooltip text={toggleLabel} side={collapsed ? 'right' : 'bottom'}>\n <IconButton\n variant=\"naked\"\n size=\"small\"\n iconName=\"sidebar\"\n aria-label={toggleLabel}\n aria-expanded={!collapsed}\n onClick={toggle}\n />\n </Tooltip>\n )\n\n return (\n <SidebarNavContext.Provider value={context}>\n <Nav\n aria-label={label}\n $width={collapsed ? widths.rail : widths[width]}\n data-collapsed={collapsed || undefined}\n data-testid={dataTestId}\n >\n {(header || toggleButton) && (\n <Header $collapsed={collapsed}>\n {header && <HeaderContent>{header}</HeaderContent>}\n {toggleButton}\n </Header>\n )}\n <Body>\n <Content\n ref={contentRef}\n onPointerOver={(event) => event.pointerType !== 'touch' && highlightRow(event.target)}\n onPointerLeave={hide}\n onFocus={(event) => isKeyboardFocus(event.target) && highlightRow(event.target)}\n onBlur={(event) => {\n if (!contentRef.current?.contains(event.relatedTarget as Node)) hide()\n }}\n >\n <Highlight\n aria-hidden=\"true\"\n data-sidebar-highlight=\"\"\n $visible={highlight.visible}\n $instant={highlight.instant}\n style={\n highlight.box\n ? {\n transform: `translate(${highlight.box.left}px, ${highlight.box.top}px)`,\n width: highlight.box.width,\n height: highlight.box.height,\n }\n : undefined\n }\n />\n {/* One list: items are its items, and each section is an item holding its own list */}\n <List>{children}</List>\n </Content>\n </Body>\n {footer && !collapsed && <Footer>{footer}</Footer>}\n </Nav>\n </SidebarNavContext.Provider>\n )\n}\n\nSidebarNav.displayName = 'SidebarNav'\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\n\nimport type { Tokens } from '../../../types/tokens'\n\n/**\n * A grid gap: a `base.dimension` step (the 4px scale, so `4` is 16px), or `auto`. Before 3.0 the\n * gap props took `base.spacing` keys, which had the same values (#188).\n */\ntype GridGap = keyof Tokens['base']['dimension'] | 'auto'\n\n// Exception to decision 0014: the gap props are typed as base dimension keys (public API),\n// so they are looked up in the base tier until they accept semantic keys.\nconst gapSpacing: Record<GridGap, string> = {\n // eslint-disable-next-line no-restricted-syntax\n ...tokens.base.dimension,\n // eslint-disable-next-line no-restricted-syntax\n auto: tokens.base.spacing.auto\n}\n\n// Breakpoints using base tokens\nconst breakpoints = {\n xs: tokens.semantic.breakpoint.xs,\n sm: tokens.semantic.breakpoint.sm,\n md: tokens.semantic.breakpoint.md,\n lg: tokens.semantic.breakpoint.lg,\n xl: tokens.semantic.breakpoint.xl,\n '2xl': tokens.semantic.breakpoint['2xl'],\n}\n\n// Media query helpers\nconst media = {\n xs: `@media (min-width: ${breakpoints.xs})`,\n sm: `@media (min-width: ${breakpoints.sm})`,\n md: `@media (min-width: ${breakpoints.md})`,\n lg: `@media (min-width: ${breakpoints.lg})`,\n xl: `@media (min-width: ${breakpoints.xl})`,\n '2xl': `@media (min-width: ${breakpoints['2xl']})`,\n}\n\n// Base Grid Container\ninterface GridProps {\n cols?: number\n gap?: GridGap\n gapX?: GridGap\n gapY?: GridGap\n className?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n children: React.ReactNode\n}\n\nconst GridContainer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $cols: number\n $gap?: string\n $gapX?: string\n $gapY?: string\n}>`\n display: grid;\n grid-template-columns: repeat(${props => props.$cols}, minmax(0, 1fr));\n \n ${props => props.$gap && css`gap: ${props.$gap};`}\n ${props => props.$gapX && css`column-gap: ${props.$gapX};`}\n ${props => props.$gapY && css`row-gap: ${props.$gapY};`}\n`\n\nexport const Grid: React.FC<GridProps> = ({ \n cols = 12, \n gap, \n gapX, \n gapY, \n className, \n 'data-testid': dataTestId,\n children \n}) => (\n <GridContainer\n $cols={cols}\n $gap={gap ? gapSpacing[gap] : undefined}\n $gapX={gapX ? gapSpacing[gapX] : undefined}\n $gapY={gapY ? gapSpacing[gapY] : undefined}\n className={className}\n data-testid={dataTestId}\n >\n {children}\n </GridContainer>\n)\n\n// Grid Column Component\ninterface GridColProps {\n span?: number\n spanSm?: number\n spanMd?: number\n spanLg?: number\n spanXl?: number\n order?: number\n orderSm?: number\n orderMd?: number\n orderLg?: number\n orderXl?: number\n className?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n children: React.ReactNode\n}\n\nconst GridColContainer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $span?: number\n $spanSm?: number\n $spanMd?: number\n $spanLg?: number\n $spanXl?: number\n $order?: number\n $orderSm?: number\n $orderMd?: number\n $orderLg?: number\n $orderXl?: number\n}>`\n ${props => props.$span && css`grid-column: span ${props.$span} / span ${props.$span};`}\n ${props => props.$order !== undefined && css`order: ${props.$order};`}\n \n ${props => props.$spanSm && css`\n ${media.sm} {\n grid-column: span ${props.$spanSm} / span ${props.$spanSm};\n }\n `}\n \n ${props => props.$spanMd && css`\n ${media.md} {\n grid-column: span ${props.$spanMd} / span ${props.$spanMd};\n }\n `}\n \n ${props => props.$spanLg && css`\n ${media.lg} {\n grid-column: span ${props.$spanLg} / span ${props.$spanLg};\n }\n `}\n \n ${props => props.$spanXl && css`\n ${media.xl} {\n grid-column: span ${props.$spanXl} / span ${props.$spanXl};\n }\n `}\n \n ${props => props.$orderSm !== undefined && css`\n ${media.sm} {\n order: ${props.$orderSm};\n }\n `}\n \n ${props => props.$orderMd !== undefined && css`\n ${media.md} {\n order: ${props.$orderMd};\n }\n `}\n \n ${props => props.$orderLg !== undefined && css`\n ${media.lg} {\n order: ${props.$orderLg};\n }\n `}\n \n ${props => props.$orderXl !== undefined && css`\n ${media.xl} {\n order: ${props.$orderXl};\n }\n `}\n`\n\nexport const GridCol: React.FC<GridColProps> = ({ \n span, \n spanSm, \n spanMd, \n spanLg, \n spanXl,\n order,\n orderSm,\n orderMd,\n orderLg,\n orderXl,\n className, \n 'data-testid': dataTestId,\n children \n}) => (\n <GridColContainer\n $span={span}\n $spanSm={spanSm}\n $spanMd={spanMd}\n $spanLg={spanLg}\n $spanXl={spanXl}\n $order={order}\n $orderSm={orderSm}\n $orderMd={orderMd}\n $orderLg={orderLg}\n $orderXl={orderXl}\n className={className}\n data-testid={dataTestId}\n >\n {children}\n </GridColContainer>\n)\n\n// Responsive Grid (replaces the common grid-cols-1 md:grid-cols-2 xl:grid-cols-3 pattern)\ninterface ResponsiveGridProps {\n cols: number\n colsSm?: number\n colsMd?: number\n colsLg?: number\n colsXl?: number\n gap?: GridGap\n gapSm?: GridGap\n gapMd?: GridGap\n gapLg?: GridGap\n gapXl?: GridGap\n gapX?: GridGap\n gapXSm?: GridGap\n gapXMd?: GridGap\n gapXLg?: GridGap\n gapXXl?: GridGap\n gapY?: GridGap\n gapYSm?: GridGap\n gapYMd?: GridGap\n gapYLg?: GridGap\n gapYXl?: GridGap\n className?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n children: React.ReactNode\n}\n\nconst ResponsiveGridContainer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $cols: number\n $colsSm?: number\n $colsMd?: number\n $colsLg?: number\n $colsXl?: number\n $gap?: string\n $gapSm?: string\n $gapMd?: string\n $gapLg?: string\n $gapXl?: string\n $gapX?: string\n $gapXSm?: string\n $gapXMd?: string\n $gapXLg?: string\n $gapXXl?: string\n $gapY?: string\n $gapYSm?: string\n $gapYMd?: string\n $gapYLg?: string\n $gapYXl?: string\n}>`\n display: grid;\n grid-template-columns: repeat(${props => props.$cols}, minmax(0, 1fr));\n \n ${props => props.$gap && css`gap: ${props.$gap};`}\n ${props => props.$gapX && css`column-gap: ${props.$gapX};`}\n ${props => props.$gapY && css`row-gap: ${props.$gapY};`}\n \n ${props => props.$colsSm && css`\n ${media.sm} {\n grid-template-columns: repeat(${props.$colsSm}, minmax(0, 1fr));\n }\n `}\n \n ${props => props.$colsMd && css`\n ${media.md} {\n grid-template-columns: repeat(${props.$colsMd}, minmax(0, 1fr));\n }\n `}\n \n ${props => props.$colsLg && css`\n ${media.lg} {\n grid-template-columns: repeat(${props.$colsLg}, minmax(0, 1fr));\n }\n `}\n \n ${props => props.$colsXl && css`\n ${media.xl} {\n grid-template-columns: repeat(${props.$colsXl}, minmax(0, 1fr));\n }\n `}\n \n // Responsive gap support\n ${props => props.$gapSm && css`\n ${media.sm} {\n gap: ${props.$gapSm};\n }\n `}\n \n ${props => props.$gapMd && css`\n ${media.md} {\n gap: ${props.$gapMd};\n }\n `}\n \n ${props => props.$gapLg && css`\n ${media.lg} {\n gap: ${props.$gapLg};\n }\n `}\n \n ${props => props.$gapXl && css`\n ${media.xl} {\n gap: ${props.$gapXl};\n }\n `}\n \n // Responsive column gap support\n ${props => props.$gapXSm && css`\n ${media.sm} {\n column-gap: ${props.$gapXSm};\n }\n `}\n \n ${props => props.$gapXMd && css`\n ${media.md} {\n column-gap: ${props.$gapXMd};\n }\n `}\n \n ${props => props.$gapXLg && css`\n ${media.lg} {\n column-gap: ${props.$gapXLg};\n }\n `}\n \n ${props => props.$gapXXl && css`\n ${media.xl} {\n column-gap: ${props.$gapXXl};\n }\n `}\n \n // Responsive row gap support\n ${props => props.$gapYSm && css`\n ${media.sm} {\n row-gap: ${props.$gapYSm};\n }\n `}\n \n ${props => props.$gapYMd && css`\n ${media.md} {\n row-gap: ${props.$gapYMd};\n }\n `}\n \n ${props => props.$gapYLg && css`\n ${media.lg} {\n row-gap: ${props.$gapYLg};\n }\n `}\n \n ${props => props.$gapYXl && css`\n ${media.xl} {\n row-gap: ${props.$gapYXl};\n }\n `}\n`\n\nexport const ResponsiveGrid: React.FC<ResponsiveGridProps> = ({ \n cols,\n colsSm,\n colsMd, \n colsLg, \n colsXl,\n gap, \n gapSm,\n gapMd,\n gapLg,\n gapXl,\n gapX, \n gapXSm,\n gapXMd,\n gapXLg,\n gapXXl,\n gapY, \n gapYSm,\n gapYMd,\n gapYLg,\n gapYXl,\n className, \n 'data-testid': dataTestId,\n children \n}) => (\n <ResponsiveGridContainer\n $cols={cols}\n $colsSm={colsSm}\n $colsMd={colsMd}\n $colsLg={colsLg}\n $colsXl={colsXl}\n $gap={gap ? gapSpacing[gap] : undefined}\n $gapSm={gapSm ? gapSpacing[gapSm] : undefined}\n $gapMd={gapMd ? gapSpacing[gapMd] : undefined}\n $gapLg={gapLg ? gapSpacing[gapLg] : undefined}\n $gapXl={gapXl ? gapSpacing[gapXl] : undefined}\n $gapX={gapX ? gapSpacing[gapX] : undefined}\n $gapXSm={gapXSm ? gapSpacing[gapXSm] : undefined}\n $gapXMd={gapXMd ? gapSpacing[gapXMd] : undefined}\n $gapXLg={gapXLg ? gapSpacing[gapXLg] : undefined}\n $gapXXl={gapXXl ? gapSpacing[gapXXl] : undefined}\n $gapY={gapY ? gapSpacing[gapY] : undefined}\n $gapYSm={gapYSm ? gapSpacing[gapYSm] : undefined}\n $gapYMd={gapYMd ? gapSpacing[gapYMd] : undefined}\n $gapYLg={gapYLg ? gapSpacing[gapYLg] : undefined}\n $gapYXl={gapYXl ? gapSpacing[gapYXl] : undefined}\n className={className}\n data-testid={dataTestId}\n >\n {children}\n </ResponsiveGridContainer>\n)\n"],"names":["cssVariableName","path","concat","__spreadArray","join","replace","toLowerCase","keepsValue","withCssVariables","tree","Object","fromEntries","entries","map","_a","key","value","at","tokens","tokensJson","semantic","initials","component","avatar","color","size","radius","AvatarContainer","styled","div","withConfig","shouldForwardProp","prop","startsWith","displayName","componentId","templateObject_1","__makeTemplateObject","$size","full","fill","muted","AvatarImage","img","templateObject_2","AvatarInitials","span","templateObject_3","fontFamily","fontWeight","fontSize","text","lineHeight","getInitials","name","split","word","charAt","slice","toUpperCase","Avatar","picture","_b","dataTestId","props","__rest","_c","htmlProps","_d","useState","imageError","setImageError","_e","imageLoaded","setImageLoaded","handleImageError","handleImageLoad","showImage","_jsx","__assign","role","children","src","alt","onError","onLoad","breakpoints","xs","breakpoint","sm","md","lg","xl","media","forcedColors","forcedColorsEdge","border","width","thin","reducedMotion","fadeOut","keyframes","exitAnimation","css","motion","duration","fast","easing","accelerate","visuallyHidden","rowFill","rowText","rowStates","unselected","rest","background","hover","pressed","selected","accent","rowDeclarations","textSelector","interactiveRow","focused","disabled","states","rowForcedColors","typography","letterSpacing","getTypographyStyles","variant","styles","display","tighter","h1","h2","tight","h3","h4","h5","normal","h6","subtitle","body","small","overline","caption","button1","button","sizes","large","font","button2","medium","button3","label","getTextColor","colorVariant","colorMap","emphasis","subdued","inverse","interactive","error","danger","success","warning","getDefaultElement","elementMap","StyledTypography","$variant","$color","Typography","as","defaultElement","elementType","badge","dot","count","ring","scaleIn","BadgeWrapper","BadgeIndicator","$isVisible","$isDot","minWidth","height","space","inset","surface","base","moderate","decelerate","ScreenReaderOnly","templateObject_4","Badge","max","ariaLabel","className","isVisible","displayCount","toString","defaultAriaLabel","_jsxs","spaceByLayoutKey","none","auto","spacing","layout","radiusByKey","circle","backgroundByPath","raised","scrim","serious","textColorByKey","borderColorByKey","StyledBox","templateObject_51","$display","$flexDirection","$justifyContent","$alignItems","$flexWrap","templateObject_5","$gap","templateObject_6","$m","templateObject_7","$mt","templateObject_8","$mr","$mb","templateObject_10","$ml","templateObject_11","$mx","templateObject_12","$my","$p","templateObject_14","$pt","templateObject_15","$pr","$pb","templateObject_17","$pl","templateObject_18","$px","templateObject_19","$py","templateObject_20","$width","templateObject_21","$height","templateObject_22","$maxWidth","templateObject_23","$maxHeight","$minWidth","templateObject_25","$minHeight","templateObject_26","$position","$top","templateObject_28","$right","templateObject_29","$bottom","$left","templateObject_31","$borderRadius","templateObject_32","$border","templateObject_33","$borderTop","$borderRight","templateObject_35","$borderBottom","templateObject_36","$borderLeft","templateObject_37","$bg","templateObject_38","templateObject_39","$shadow","templateObject_40","elevation","$cursor","templateObject_41","$transition","$hoverShadow","$hoverTransform","templateObject_47","templateObject_43","templateObject_44","templateObject_45","focus","focusOffset","templateObject_46","$overflow","templateObject_48","$overflowX","templateObject_49","$overflowY","BoxTransform","flexDirection","justifyContent","alignItems","flexWrap","gap","m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","maxWidth","maxHeight","minHeight","position","top","right","bottom","left","borderRadius","borderTop","borderRight","borderBottom","borderLeft","bg","shadow","cursor","transition","hoverShadow","hoverTransform","overflow","overflowX","overflowY","onClick","onKeyDown","tabIndex","Box","IconStyled","icon","$iconColor","Icon","iconColor","title","trim","undefined","iconData","iconsData","console","warn","viewBox","xmlns","focusable","d","control","baseButtonStyles","feedback","outline","getVariantStyles","variantConfig","primary","backgroundColor","textColor","hoverBg","activeBg","active","disabledBg","disabledText","secondary","variants","naked","config","getSizeStyles","StyledButton","StyledLink","a","getIconSize","buttonSize","renderButtonContent","iconName","iconSize","Button","url","purpose","target","LinkComponent","linkComponent","linkProps","href","buttonProps_1","handleClick","e","window","open","location","buttonProps","category","labelHeight","displayColors","categoryText","olive","periwinkle","rose","magenta","gray","StyledCategoryLabel","VisibleContent","HiddenLabel","CategoryLabel","accessibleLabel","includes","chip","$surface","$selected","$clickable","$disabled","subtle","interactiveStates","sizeStyles","StyledChip","IconContainer","CloseButton","closeButton","Chip","ariaDescribedBy","domProps","content","InputChip","onDismiss","isDismissible","Boolean","handleDismiss","event","stopPropagation","handleKeyDown","preventDefault","handleCloseKeyDown","closeButtonLabel","type","FilterChip","StyledSuggestionChip","input","SuggestionChip","StyledContainer","Container","PictureWrapper","clickableImage","press","opacity","ImageLink","ImageButton","StyledImage","Picture","image","TimeStyled","time","formatDateSmart","date","customFormat","isToday","isYesterday","isThisWeek","weekStartsOn","format","DateFormatter","dateString","formatString","mode","parseISO","displayText","dateTime","iconButton","padding","colours","IconButtonStyled","IconButton","ariaExpanded","ariaPressed","assign","StyledWrapper","$align","$weight","sizeToTypographyVariant","xlarge","MINUS","MoneyDisplay","amount","currency","showSign","_f","weight","_g","locale","_h","align","formatter","Intl","NumberFormat","style","minimumFractionDigits","maximumFractionDigits","formattedAmount","Math","abs","isNegative","isPositive","sign","typographyVariant","amountColor","ProgressBarContainer","track","progressBar","ProgressBarFill","standard","min","$value","ProgressBar","ariaLabelledBy","labelledBy","separatorTokens","StyledDivider","$orientation","borderProperty","strong","minimal","Divider","orientation","StyledStack","GAP_SPACE","getGapValue","step","Stack","direction","wrap","gapValue","cssProps","statusShapes","info","inProgress","Mark","svg","StatusShape","shape","statusColors","getStatusConfig","status","configs","pending","bgColor","completed","failed","cancelled","processing","scheduled","sizeConfig","StyledStatusLabel","$status","StatusLabelBase","liveRegion","statusConfig","displayLabel","StatusLabel","StyledTag","Tag","tagSize","EXIT_DURATION_MS","parseInt","tokenValues","usePresence","isOpen","exitMs","isMounted","setIsMounted","useEffect","timer","setTimeout","clearTimeout","isPresent","isExiting","useInert","ref","isInert","node","current","setAttribute","removeAttribute","opposite","room","side","anchor","viewport","margin","clamp","placeFloating","options","floating","offset","vertical","s","needed","round","laidOutElement","wrapper","element","firstElementChild","getComputedStyle","useIsomorphicLayoutEffect","useLayoutEffect","supportsPopover","HTMLElement","prototype","remToPx","parseFloat","document","documentElement","useFloatingLayer","floatingRef","anchorRef","onDetach","matches","showPopover","place","trigger","getBoundingClientRect","innerWidth","innerHeight","dataset","ResizeObserver","observer","observe","disconnect","onScroll","Node","contains","addEventListener","removeEventListener","isKeyboardFocus","Element","HINT_DELAY_MS","delay","hint","SKIP_DELAY_MS","slow","CLOSE_GRACE_MS","lastClosedAt","fadeIn","Bubble","$exiting","Description","Anchor","Tooltip","kind","descriptionId","useId","useRef","bubbleRef","openTimer","closeTimer","owner","setIsOpen","clearTimers","close","useCallback","Date","now","scheduleOpen","scheduleClose","child","React","Children","only","describedBy","filter","onPointerEnter","pointerType","onPointerLeave","onFocus","onBlur","onPointerDown","cloneElement","id","labels","suggested","removal","StyledAILabel","ai","StyledIcon","AILabel","labelSize","StyledBalanceSection","StyledTrendSection","StyledStackWrapper","StyledHeaderWrapper","accountCard","header","trendToIcon","up","down","neutral","trendToColor","AccountCard","accountName","balance","accountNumber","trend","trendValue","action","secondaryAction","isClickable","trendIcon","trendColor","ListSpacingContext","createContext","StyledListItem","li","row","$interactive","$destructive","StyledItemContent","$spacing","StyledTextContent","StyledIconContainer","StyledRightContent","StyledChevronIcon","$expanded","StyledExpandedContent","listItem","expandedIndent","compact","comfortable","ListItem","expandable","expanded","onToggle","destructive","spacingProp","customRole","ariaSelected","customTabIndex","customOnKeyDown","listSpacing","useContext","isInteractive","contentRole","ariaDisabled","ariaCurrent","Provider","slideUp","StyledOverlay","layer","modal","$isExiting","StyledActionSheet","overlay","StyledHeader","StyledHeaderContent","StyledCloseButton","StyledActionsList","ul","ActionSheet","onClose","description","actions","closeOnOverlayClick","closeOnEscape","showCloseButton","sheetRef","previousActiveElement","activeElement","focusableElements","querySelectorAll","firstElement","lastElement","length","shiftKey","frame","requestAnimationFrame","firstFocusable","querySelector","originalOverflow","cancelAnimationFrame","handleOverlayClick","currentTarget","handleActionClick","onSelect","destructiveIndex","findIndex","hasDestructive","createPortal","_Fragment","index","Fragment","detectSpeechRecognitionConstructor","targetWindow","candidateWindow","SpeechRecognition","webkitSpeechRecognition","normalizeTranscript","normalizeMessage","mapSpeechErrorCode","defaultVoiceErrorMessage","code","textDrivenState","hasText","agentInputStateTransition","currentState","DEFAULT_LISTENING_MESSAGE","DEFAULT_PROCESSING_MESSAGE","COUNTER_THRESHOLD","rotateRing","$docked","sticky","ControlsRow","InputShell","borderWidth","borderColor","Input","textarea","placeholder","InputActions","CircularActionIconButton","InputWrapper","templateObject_9","MicButtonWrapper","ringMask","MicListeningRing","templateObject_13","thick","$reducedMotion","MAX_SUGGESTIONS","regionEnter","distance","regionFadeIn","regionFadeThenCollapse","templateObject_16","regionFadeOut","RegionItem","$reducedExit","RegionItemContent","ReviewBar","ReviewActions","SuggestionList","StatusRow","StatusText","templateObject_27","StatusAnnouncement","StatusEnd","VisuallyHidden","templateObject_30","MeterContainer","MeterBar","VisuallyHiddenLabel","getInitialState","createMeterBars","level","clampedLevel","readIsProduction","process","env","NODE_ENV","isProduction","RegionPart","show","reducedExit","AgentInputWithRef","_this","defaultValue","onChange","onSubmit","onStop","review","suggestions","onSuggestionSelect","maxLength","isSubmitting","enableVoice","autoSubmitOnVoiceFinal","voiceLanguage","_j","noSpeechTimeoutMs","onVoiceStart","onVoiceStop","onVoiceInterim","onVoiceFinal","onVoiceError","_k","helperText","statusMessage","errorMessage","_l","_m","docked","isControlled","_o","internalValue","setInternalValue","_p","machineState","setMachineState","_q","interimTranscript","setInterimTranscript","_r","internalSubmitting","setInternalSubmitting","_s","internalErrorMessage","setInternalErrorMessage","_t","voiceSupported","setVoiceSupported","_u","prefersReducedMotion","setPrefersReducedMotion","_v","meterLevel","setMeterLevel","recognitionRef","noSpeechTimeoutRef","isStoppingRef","hasSubmittedVoiceFinalRef","audioStreamRef","audioContextRef","meterRafRef","inputRef","inputId","statusId","counterId","currentValue","currentValueRef","messageLength","isOverLimit","effectiveSubmitting","effectiveState","isListening","hasVoice","updateMachineState","previousState","updateValue","nextValue","clearNoSpeechTimeout","stopMeter","__awaiter","getTracks","forEach","stop","sent","startMeter","navigator","mediaDevices","getUserMedia","audio","stream","audioContext","AudioContext","analyser_1","createAnalyser","fftSize","source","createMediaStreamSource","connect","data_1","Uint8Array","frequencyBinCount","loop_1","getByteTimeDomainData","sum","centered","rms","sqrt","nextLevel","emitVoiceError","fallback","message","submitPayload","rawText","timestamp","toISOString","stopListening","emitStopEvent_1","args_1","emitStopEvent","preserveState","onNoSpeechTimeout","beginListening","start","constructor","recognition","lang","interimResults","continuous","onresult","interim","finalText","resultIndex","results","result","isFinal","transcript","normalizedInterim","normalizedFinal","onerror","mappedCode","onend","abort","focusField","placeCursor","select","setSelectionRange","useImperativeHandle","clear","_w","shownReview","setShownReview","_x","lastReviewAction","setLastReviewAction","openProposalId","state","_y","announcedProposalId","setAnnouncedProposalId","_z","replacementCount","setReplacementCount","cappedSuggestions","useMemo","showSuggestions","_0","shownSuggestions","setShownSuggestions","suggestionCount","reviewAnnouncement","summary","onReviewDiscard","onDiscard","onReviewUndo","onUndo","onPickSuggestion","mediaQuery","matchMedia","sync","displayedValue","lastFieldWidthRef","resizeField","field","clientWidth","scrollX","scrollY","scrollHeight","scrollTo","clientHeight","onTextChange","onInputKeyDown","isComposing","nativeEvent","keyCode","onMicToggle","statusByState","idle","typing","listening","processingFinalTranscript","submitting","overLimitMessage","resolvedStatus","isStatusError","meterBars","showStop","sendDisabled","showCounter","limitAnnouncement","htmlFor","onAccept","suggestion","rows","enterKeyHint","readOnly","barHeight","AgentInput","forwardRef","alert","FADE_MS","EXIT_MS","fadeThenCollapse","EXIT_ANIMATION_NAMES","getName","variantIcons","variantIconColors","variantTitleColors","StyledAlert","severity","$appearance","appearance","StyledContent","StyledTitle","StyledMessage","StyledActions","StyledDismissSlot","$lineHeight","StyledDismissButton","Alert","dismissible","ariaLive","restProps","inline","phase","setPhase","setReducedExit","exitStyle","setExitStyle","alertRef","onDismissRef","paddingTop","paddingBottom","boxSizing","offsetHeight","borderTopWidth","borderBottomWidth","call","forwarded","handleAnimationEnd","onAnimationEnd","pseudoElement","animationName","alertIconColor","alertTitleColor","variantTextColors","variantShapes","StyledInlineAlert","$empty","StyledIconLine","InlineAlert","alertSize","hasMessage","BreadcrumbNavStyled","nav","BreadcrumbStyled","breadcrumbs","item","BreadcrumbSeparator","isInternalUrl","Breadcrumbs","breadcrumb","rel","CardSmallStyled","CardSmall","meta","CardLargeStyled","cardLarge","CardLarge","excerpt","onImageClick","imageHref","Array","isArray","HiddenCheckboxInput","StyledCheckbox","checkbox","box","$checked","$indeterminate","$state","on","mark","StyledCheckboxContainer","$labelPosition","StyledCheckboxLabel","StyledFieldContainer","StyledHelperText","$error","colorError","Checkbox","checked","indeterminate","labelPosition","providedId","ariaDescribedby","generatedId","helperTextId","errorId","ChipGroupWrapper","ChipGroup","StyledCodeBlock","pre","codeBlock","$isExpanded","$needsExpansion","CodeBlockWrapper","CopyButtonWrapper","ExpandButtonWrapper","$hasGradient","CopyButton","onCopy","copied","setCopied","timeoutRef","handleCopy","clipboard","writeText","err_1","LiveRegion","CodeBlock","showCopyButton","defaultExpanded","testId","isExpanded","setIsExpanded","needsExpansion","setNeedsExpansion","announcement","setAnnouncement","contentRef","handleToggleExpand","prev","showExpandButton","$sticky","StyledLeftSection","StyledRightSection","DateGroup","showTotal","totalAmount","showCount","totalVariant","emptyState","StyledIllustration","illustration","StyledTextContainer","illustrationToIcon","search","transactions","notifications","empty","EmptyState","customIllustration","renderIllustration","marginTop","FeatureBlockStyled","ImageWrapper","ContentSection","ButtonWrapper","ContentWrapper","FeatureBlock","coverImage","onReadMore","readMoreHref","readMoreText","controlPaddingX","controlPaddingY","controlHeight","DropdownContainer","DropdownTrigger","$hasError","$isOpen","DropdownIcon","DropdownMenu","dropdown","menu","DropdownOption","$isSelected","$isFocused","Dropdown","focusedIndex","setFocusedIndex","dropdownRef","dropdownId","selectedOption","find","option","hasError","helperId","handleClickOutside","newIndex","handleOptionClick","handleTriggerClick","selectedIndex","optionId","marginBottom","StyledList","$dividers","List","dividers","TYPEAHEAD_RESET_MS","ITEM_SELECTOR","MenuContext","useMenu","context","Error","enter","fade","Panel","focusItem","which","items","from","Menu","openProp","defaultOpen","onOpenChange","menuId","triggerId","panelRef","initialFocus","openedFromTrigger","typeahead","uncontrolledOpen","setUncontrolledOpen","triggerElement","setOpen","next","returnFocus","openWith","String","panel","detach","onTriggerKeyDown","onTriggerClick","detail","onMenuKeyDown","indexOf","move","ctrlKey","metaKey","altKey","state_1","label_1","textContent","ordered","Row","$focused","Leading","Text","Shortcut","Check","RowItem","shortcut","textValue","onActivate","setFocused","checkable","activate","keys","onPointerMove","MenuItem","MenuItemRadio","MenuItemCheckbox","onCheckedChange","GroupLabel","MenuGroup","labelId","Separator","MenuDivider","SidebarNavContext","collapsed","glide","useSidebarNav","test","$current","$glide","$collapsed","Label","Meta","BadgeAnchor","SidebarNavItem","badgeLabel","hasBadge","badgeText","withBadge","shared","COLLAPSE_MS","Section","Header","labelText","StaticLabel","Disclosure","Collapse","$clip","SidebarNavSection","collapsible","expandedProp","onExpandedChange","inNav","listId","uncontrolledExpanded","setUncontrolledExpanded","animating","setAnimating","userExpanded","toggle","onTransitionEnd","propertyName","sizeToWidth","StyledDialog","StyledBody","StyledFooter","Modal","dialogRef","previousFocusRef","timer_1","first","last","titleId","inputBaseStyles","StyledInputBase","StyledTextAreaBase","StyledLabel","colorDisabled","StyledRequiredIndicator","requiredIndicator","StyledInputWrapper","StyledNumberInput","StyledStepperContainer","$isError","NumberInput","required","parseValue","val","parsed","isNaN","formatValue","handleIncrement","inputElement","numValue","newValue","syntheticEvent","handleDecrement","handleChange","inputValue","parsedValue","isIncrementDisabled","isDecrementDisabled","ariaDescribedByIds","inputMode","StyledToggleButton","PasswordField","showToggle","inputProps","showPassword","setShowPassword","togglePasswordVisibility","paddingRight","StyledSearchContainer","StyledInput","StyledSuggestionsList","StyledSectionHeader","searchField","sectionHeader","debounce","func","wait","timeout","args","_i","arguments","apply","SearchField","showRecentSearches","recentSearches","onClearRecentSearches","debounceMs","loading","isFocused","setIsFocused","setShowSuggestions","highlightedIndex","setHighlightedIndex","debouncedValue","setDebouncedValue","listRef","debouncedOnChange","displayItems","push","data","r","handleInputChange","handleFocus","handleBlur","handleSuggestionClick","handleClear","scrollIntoView","block","showClearButton","hasItems","isString","slideInRight","slideInLeft","slideInTop","slideInBottom","StyledSheet","isDrawer","StyledSheetContent","Sheet","StyledSliderContainer","StyledSliderTrackContainer","StyledTrack","StyledTrackFill","StyledThumb","slider","thumb","pointerTarget","touchTarget","$range","$active","StyledValueLabel","StyledMinMaxLabels","Slider","controlledValue","controlledRangeValue","rangeValue","defaultRangeValue","onRangeChange","showValueLabel","trackRef","activeThumb","setActiveThumb","endDragRef","isRange","internalRangeValue","setInternalRangeValue","currentRangeValue","clampValue","clamped","stepped","positionToValue","clientX","rect","percent","rawValue","valueToPercent","handleSingleChange","clampedValue","handleRangeChange","newMin","newMax","clampedMin","clampedMax","orderedMin","orderedMax","handleTrackClick","closest","minVal","maxVal","distToMin","distToMax","handleThumbPointerDown","pointerId","setPointerCapture","handlePointerMove","endDrag","handlePointerEnd","valueChange","singlePercent","minPercent","maxPercent","StyledTabList","tabBar","scrollbar","StyledTab","$isActive","StyledBadge","TabBar","tabs","activeTab","onTabChange","tabRefs","tab","handleTabClick","el","TextField","StyledAvatarSection","StyledMainContent","StyledTopRow","StyledMerchantSection","StyledBottomRow","StyledMetadata","StyledIconIndicator","StyledTruncatedText","categoryConfig","shopping","dining","transport","entertainment","bills","other","TransactionListItem","merchant","merchantLogo","hasReceipt","hasNote","amountVariant","categoryData","Trigger","Name","Decoration","WorkspaceSwitcher","workspaces","match","workspace","widths","sidebarNav","Nav","HeaderContent","Body","Content","Highlight","$visible","$instant","Footer","SidebarNav","footer","collapsedProp","defaultCollapsed","onCollapsedChange","uncontrolledCollapsed","setUncontrolledCollapsed","visible","instant","highlight","setHighlight","hide","setLayout","highlightRow","getAttribute","outer","toggleLabel","toggleButton","rail","onPointerOver","relatedTarget","transform","gapSpacing","dimension","GridContainer","$cols","$gapX","$gapY","Grid","cols","gapX","gapY","GridColContainer","$span","$order","$spanSm","$spanMd","$spanLg","$spanXl","$orderSm","$orderMd","$orderLg","$orderXl","GridCol","spanSm","spanMd","spanLg","spanXl","order","orderSm","orderMd","orderLg","orderXl","ResponsiveGridContainer","$colsSm","$colsMd","$colsLg","$colsXl","$gapSm","$gapMd","templateObject_24","$gapLg","$gapXl","$gapXSm","$gapXMd","$gapXLg","$gapXXl","$gapYSm","$gapYMd","$gapYLg","$gapYXl","templateObject_34","ResponsiveGrid","colsSm","colsMd","colsLg","colsXl","gapSm","gapMd","gapLg","gapXl","gapXSm","gapXMd","gapXLg","gapXXl","gapYSm","gapYMd","gapYLg","gapYXl"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"client.js","sources":["../node_modules/tslib/tslib.es6.js","../src/lib/cssVariables.ts","../src/lib/cssTokens.ts","../src/components/atoms/Avatar/Avatar.tsx","../src/lib/styleUtils.ts","../src/components/atoms/Badge/Badge.tsx","../src/lib/tokenAliases.ts","../src/components/atoms/Box/Box.tsx","../src/components/atoms/Icon/Icon.tsx","../src/components/atoms/Button/Button.tsx","../src/components/atoms/CategoryLabel/CategoryLabel.tsx","../src/components/atoms/Chip/shared/utils.ts","../src/components/atoms/Chip/shared/ChipBase.tsx","../src/components/atoms/Chip/Chip.tsx","../src/components/atoms/Chip/InputChip.tsx","../src/components/atoms/Chip/FilterChip.tsx","../src/components/atoms/Chip/SuggestionChip.tsx","../src/components/atoms/Container/Container.tsx","../src/components/atoms/Picture/Picture.tsx","../src/components/atoms/DateFormatter/DateFormatter.tsx","../src/components/atoms/IconButton/IconButton.tsx","../src/components/atoms/Typography/Typography.tsx","../src/components/atoms/MoneyDisplay/MoneyDisplay.tsx","../src/components/atoms/ProgressBar/ProgressBar.tsx","../src/components/atoms/Divider/Divider.tsx","../src/components/atoms/Stack/Stack.tsx","../src/lib/statusShapes.ts","../src/components/atoms/StatusLabel/StatusShape.tsx","../src/components/atoms/StatusLabel/StatusLabelBase.tsx","../src/components/atoms/StatusLabel/StatusLabel.tsx","../src/components/atoms/Tag/Tag.tsx","../src/lib/usePresence.ts","../src/lib/floatingPosition.ts","../src/lib/useFloatingLayer.ts","../src/lib/keyboardFocus.ts","../src/components/atoms/Tooltip/Tooltip.tsx","../src/components/atoms/AILabel/AILabel.tsx","../src/components/molecules/AccountCard/AccountCard.tsx","../src/components/molecules/List/ListContext.ts","../src/components/molecules/List/ListItem.tsx","../src/components/molecules/ActionSheet/ActionSheet.tsx","../src/components/molecules/AgentInput/agentInputSpeech.ts","../src/components/molecules/AgentInput/agentInputStateMachine.ts","../src/components/molecules/AgentInput/AgentInput.tsx","../src/components/molecules/Alert/Alert.tsx","../src/components/molecules/InlineAlert/InlineAlert.tsx","../src/components/molecules/Breadcrumbs/Breadcrumbs.tsx","../src/components/molecules/CardSmall/CardSmall.tsx","../src/components/molecules/CardLarge/CardLarge.tsx","../src/components/molecules/Checkbox/SelectableInputBase.tsx","../src/components/molecules/Checkbox/Checkbox.tsx","../src/components/molecules/ChipGroup/ChipGroup.tsx","../src/components/molecules/CodeBlock/CodeBlock.tsx","../src/components/molecules/DateGroup/DateGroup.tsx","../src/components/molecules/EmptyState/EmptyState.tsx","../src/components/molecules/FeatureBlock/FeatureBlock.tsx","../src/components/molecules/Dropdown/Dropdown.tsx","../src/components/molecules/List/List.tsx","../src/components/molecules/Menu/Menu.tsx","../src/components/molecules/SidebarNavItem/SidebarNavContext.ts","../src/components/molecules/SidebarNavItem/sidebarNavMotion.ts","../src/components/molecules/SidebarNavItem/SidebarNavItem.tsx","../src/components/molecules/SidebarNavSection/SidebarNavSection.tsx","../src/components/molecules/Modal/Modal.tsx","../src/components/molecules/TextField/InputBase.tsx","../src/components/molecules/NumberInput/NumberInput.tsx","../src/components/molecules/PasswordField/PasswordField.tsx","../src/components/molecules/SearchField/SearchField.tsx","../src/components/molecules/Sheet/Sheet.tsx","../src/components/molecules/Slider/Slider.tsx","../src/components/molecules/TabBar/TabBar.tsx","../src/components/molecules/TextField/TextField.tsx","../src/components/molecules/TransactionListItem/TransactionListItem.tsx","../src/components/molecules/WorkspaceSwitcher/WorkspaceSwitcher.tsx","../src/components/organisms/SidebarNav/SidebarNav.tsx","../src/components/layout/GridSystem/GridSystem.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","// Components read tokens as CSS variables, with the resolved value as the fallback (decision 0041).\n// A product that loads tokens.css can change a token for a region (a density or motion mode, a\n// theme); one that doesn't renders exactly the resolved values.\n\n/**\n * The CSS variable tokens.css declares for a token path: Style Dictionary's `name/kebab` with the\n * `co` prefix. `semantic.color.text.default` is `--co-semantic-color-text-default`, and\n * `semantic.border.focusOffset` is `--co-semantic-border-focus-offset`.\n */\nexport function cssVariableName(path: string[]): string {\n return `--${['co', ...path]\n .join('-')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .toLowerCase()}`\n}\n\n/** Breakpoints stay values: a CSS variable can't be used in a media query */\nconst keepsValue = (path: string[]) => path[1] === 'breakpoint'\n\ntype Tree = { [key: string]: string | Tree }\n\n/**\n * A copy of a token tree with the same shape, where every value reads its CSS variable and falls\n * back to the resolved value: `var(--co-semantic-color-text-default, #212529)`.\n */\nexport function withCssVariables<T extends Tree>(tree: T, path: string[] = []): T {\n return Object.fromEntries(\n Object.entries(tree).map(([key, value]) => {\n const at = [...path, key]\n if (typeof value !== 'string') return [key, withCssVariables(value, at)]\n return [key, keepsValue(at) ? value : `var(${cssVariableName(at)}, ${value})`]\n })\n ) as T\n}\n","import tokensJson from '../styles/tokens.json'\nimport type { Tokens } from '../styles/tokens'\nimport { withCssVariables } from './cssVariables'\n\n/**\n * The tokens as components read them (decision 0041): the same shape and type as `tokens.json`,\n * with every value a CSS variable that falls back to the resolved value, so a region can change a\n * token through tokens.css. Breakpoints stay values.\n *\n * Use the resolved values from `tokens.json` instead where a value is read as data rather than\n * CSS, such as a duration parsed for a timer.\n *\n * Jest maps this module to `tokens.json` (jest.config.js), so unit tests assert resolved values;\n * the browser specs check the variables.\n */\nconst tokens: Tokens = withCssVariables(tokensJson as Tokens)\n\nexport default tokens\n","import React, { useState } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\n// Destructure tokens\nconst { semantic } = tokens\nconst { initials } = tokens.component.avatar\nconst { color, size } = semantic\nconst { radius } = semantic\n\nexport interface AvatarProps {\n name: string\n picture?: string\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n 'data-testid'?: string\n}\n\ninterface StyledAvatarProps {\n $size: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n}\n\nconst AvatarContainer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledAvatarProps>`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${({ $size }) => size.avatar[$size]};\n height: ${({ $size }) => size.avatar[$size]};\n border-radius: ${radius.full};\n background-color: ${color.fill.muted};\n overflow: hidden;\n flex-shrink: 0;\n`\n\nconst AvatarImage = styled.img.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledAvatarProps>`\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: ${radius.full};\n /* Remove the img role since the container already has role=\"img\" */\n`\n\nconst AvatarInitials = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledAvatarProps>`\n font-family: ${initials.fontFamily};\n font-weight: ${initials.fontWeight};\n font-size: ${({ $size }) => initials.fontSize[$size]};\n color: ${color.text.default};\n line-height: ${initials.lineHeight};\n text-transform: uppercase;\n user-select: none;\n`\n\n// Helper function to get initials from name\nconst getInitials = (name: string): string => {\n return name\n .split(' ')\n .map(word => word.charAt(0))\n .join('')\n .slice(0, 2)\n .toUpperCase()\n}\n\nexport const Avatar: React.FC<AvatarProps> = ({ \n name, \n picture, \n size = 'md',\n 'data-testid': dataTestId,\n ...props \n}) => {\n // Remove styled-only props from the rest\n const { $size, ...htmlProps } = props as Record<string, any>\n const [imageError, setImageError] = useState(false)\n const [imageLoaded, setImageLoaded] = useState(false)\n\n const handleImageError = () => {\n setImageError(true)\n }\n\n const handleImageLoad = () => {\n setImageLoaded(true)\n }\n\n const showImage = picture && !imageError\n const initials = getInitials(name)\n\n return (\n <AvatarContainer \n $size={size}\n data-testid={dataTestId}\n data-size={size}\n role=\"img\"\n aria-label={`Avatar for ${name}`}\n {...htmlProps}\n >\n {showImage ? (\n <AvatarImage\n $size={size}\n src={picture}\n alt={`Avatar of ${name}`}\n onError={handleImageError}\n onLoad={handleImageLoad}\n data-state={imageLoaded ? 'loaded' : 'loading'}\n />\n ) : (\n <AvatarInitials \n $size={size}\n data-initials={initials}\n aria-hidden=\"true\"\n >\n {initials}\n </AvatarInitials>\n )}\n </AvatarContainer>\n )\n}","import { css, keyframes } from 'styled-components'\nimport tokens from './cssTokens'\n\n// Breakpoints from the semantic tokens (decision 0014)\nexport const breakpoints = {\n xs: tokens.semantic.breakpoint.xs,\n sm: tokens.semantic.breakpoint.sm,\n md: tokens.semantic.breakpoint.md,\n lg: tokens.semantic.breakpoint.lg,\n xl: tokens.semantic.breakpoint.xl,\n '2xl': tokens.semantic.breakpoint['2xl'],\n}\n\n// Media query helpers\nexport const media = {\n xs: `@media (min-width: ${breakpoints.xs})`,\n sm: `@media (min-width: ${breakpoints.sm})`,\n md: `@media (min-width: ${breakpoints.md})`,\n lg: `@media (min-width: ${breakpoints.lg})`,\n xl: `@media (min-width: ${breakpoints.xl})`,\n '2xl': `@media (min-width: ${breakpoints['2xl']})`,\n}\n\n// Windows Contrast Themes and other forced-colours modes (decision 0038). The browser swaps in\n// the user's system colours, drops background colours and box-shadows, and keeps borders and\n// outlines. Inside this query, give a control that shows its edge with a fill alone a border,\n// and draw selected and checked states with system colours: ButtonText for control edges,\n// Highlight and HighlightText for selected and checked, GrayText for disabled, CanvasText for\n// content. Use forced-color-adjust: none only on a fill that carries state.\nexport const forcedColors = '@media (forced-colors: active)'\n\n/** A control's edge in forced colours, for a control that shows its edge with a fill alone. The\n * border follows the text colour the browser picks: ButtonText, LinkText, or GrayText when disabled. */\nexport const forcedColorsEdge = `${forcedColors} {\n border: ${tokens.semantic.border.width.thin} solid currentColor;\n}`\n\n// Wrap fallbacks for people who ask for less motion (decision 0005): movement becomes\n// an instant change or a simple fade. Colour and opacity transitions need no fallback.\nexport const reducedMotion = '@media (prefers-reduced-motion: reduce)'\n\n// No `from` keyframe: the fade starts from the element's current opacity, including a\n// still-running entrance, so closing mid-entrance doesn't jump back to fully visible.\nconst fadeOut = keyframes`\n to { opacity: 0; }\n`\n\n// Exit for overlays that unmount (use with usePresence). Append `exitAnimation` to each of\n// the element's `animation` declarations while it exits: the entrance stays in the list,\n// so it isn't restarted, and the fade runs on top of it. A fade is already the\n// reduced-motion form, so it needs no fallback of its own. While it fades, the backdrop\n// still catches clicks (so they can't reach the page behind it) and the panel is inert.\n// Exits accelerate: things leaving speed up as they go (decision 0037).\nexport const exitAnimation = css`, ${fadeOut} ${tokens.semantic.motion.duration.fast} ${tokens.semantic.motion.easing.accelerate} forwards`\n\n// Content for screen readers only. The 1px size and -1px margin are part of the standard\n// visually-hidden technique, not design values, so they aren't tokens.\nexport const visuallyHidden = css`\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n`\n\n// One interaction pattern for rows and items: list items, menu and listbox options, sidebars\n// (decision 0030). Unselected rows follow the naked Button's ladder; selected rows follow the\n// light-blue selected ladder, with the text darkening with its fill (decision 0016). Unselected\n// rows leave their text colour to the component, so a destructive row can stay red.\nconst { fill: rowFill, text: rowText } = tokens.semantic.color\n\n/** Corner radius of a button inside a field (a stepper, a clear or show-password button): one step tighter than the field, so its corner nests (decision 0055). */\nexport const fieldButtonRadius = tokens.semantic.radius.sm\n\n/** Corner radius every row and tab shares: the control radius (decision 0055). */\nexport const rowRadius = tokens.semantic.radius.md\n\nexport interface RowState {\n background: string\n text?: string\n}\n\nexport const rowStates: Record<'unselected' | 'selected', Record<'rest' | 'hover' | 'pressed', RowState>> = {\n unselected: {\n rest: { background: 'transparent' },\n hover: { background: rowFill.muted },\n pressed: { background: rowFill.default },\n },\n selected: {\n rest: { background: rowFill['accent-muted'], text: rowText.accent },\n hover: { background: rowFill['accent-muted-hover'], text: rowText.accent },\n pressed: { background: rowFill['accent-muted-pressed'], text: rowText.accent },\n },\n}\n\nconst rowDeclarations = ({ background, text }: RowState, textSelector?: string) => {\n if (!text) return `background-color: ${background};`\n return textSelector\n ? `background-color: ${background};\\n ${textSelector} { color: ${text}; }`\n : `background-color: ${background};\\n color: ${text};`\n}\n\n/**\n * The background (and, when selected, text) of an interactive row in every state.\n * - `focused`: keyboard focus that isn't DOM focus, such as a listbox option under\n * aria-activedescendant. It shows the hover state.\n * - `disabled`: shows the resting state, with no hover or press.\n * - `textSelector`: a descendant to colour when the row's text isn't the row itself, for example\n * text set by Typography. Pass it without `&`.\n */\nexport const interactiveRow = ({\n selected = false,\n focused = false,\n disabled = false,\n textSelector,\n}: {\n selected?: boolean\n focused?: boolean\n disabled?: boolean\n textSelector?: string\n} = {}) => {\n const states = selected ? rowStates.selected : rowStates.unselected\n if (disabled) return `${rowDeclarations(states.rest, textSelector)}\\n${rowForcedColors({ selected, focused, disabled, textSelector })}`\n return `\n ${rowDeclarations(focused ? states.hover : states.rest, textSelector)}\n\n &:hover {\n ${rowDeclarations(states.hover, textSelector)}\n }\n\n &:active {\n ${rowDeclarations(states.pressed, textSelector)}\n }\n\n ${rowForcedColors({ selected, focused, disabled, textSelector })}\n`\n}\n\n// Rows in forced colours (decision 0038): fills are dropped, so a selected row takes the system\n// selection colours, and a hovered or keyboard-active row is outlined in Highlight.\nconst rowForcedColors = ({\n selected,\n focused,\n disabled,\n textSelector,\n}: {\n selected: boolean\n focused: boolean\n disabled: boolean\n textSelector?: string\n}) => {\n const text = (color: string) => (textSelector ? `color: ${color};\\n ${textSelector} { color: ${color}; }` : `color: ${color};`)\n const hover = `outline: ${tokens.semantic.border.width.thin} solid Highlight;\\n outline-offset: calc(-1 * ${tokens.semantic.border.width.thin});`\n // A row that doesn't respond (disabled, or not interactive at all) keeps its selection but has\n // no hover outline. Disabled text is the component's to colour: callers also pass this for\n // static rows, which must stay CanvasText.\n // A selected row keeps forced-color-adjust: auto: the browser keeps system colours an author\n // sets, so the row stays Highlight with HighlightText. Its descendants' own colours would be\n // forced to CanvasText, so they inherit HighlightText, and anything drawn with a fill inside\n // (a chip or tag as the row's badge) drops it and keeps its edge. The doubled class outranks\n // the descendants' own rules.\n return `${forcedColors} {\n ${selected ? `background-color: Highlight;\\n ${text('HighlightText')}\\n && * {\\n color: inherit;\\n background-color: transparent;\\n }` : ''}\n ${!disabled && focused ? hover : ''}\n ${disabled ? '' : `&:hover {\\n ${hover}\\n }`}\n }`\n}\n","import React from 'react'\nimport styled, { keyframes } from 'styled-components'\nimport { forcedColors, reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic } = tokens\nconst { color } = semantic\nconst { radius } = semantic\nconst { dot, count, ring } = tokens.component.badge\n\n/**\n * Badge variants: `default`, the count on the strongest neutral fill, and `accent`, the blue highlight (decision 0045).\n */\nexport type BadgeVariant = 'default' | 'accent'\n\nexport interface BadgeProps {\n /** Content to wrap with the badge */\n children: React.ReactNode\n /** Number to display in the badge. If 0, badge is hidden */\n count?: number\n /** Maximum number to display before showing \"99+\" */\n max?: number\n /**\n * Visual variant of the badge. A badge means new or unread items (decision 0045): `accent` is\n * the blue highlight, and `default` the count on the strongest neutral fill. A badge's colour alone can't carry a\n * status, so a count of items with a status uses the status pattern instead (\"3 failed\" with\n * StatusLabel).\n * @default 'default'\n */\n variant?: BadgeVariant\n /** Show only a dot indicator instead of count */\n dot?: boolean\n /** Screen reader label for the badge */\n 'aria-label'?: string\n /** Additional CSS class */\n className?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\nconst scaleIn = keyframes`\n from {\n transform: scale(0.8);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n`\n\nconst BadgeWrapper = styled.span`\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n flex-shrink: 0;\n`\n\nconst BadgeIndicator = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $variant: string; $isDot: boolean; $isVisible: boolean }>`\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n display: ${props => props.$isVisible ? 'flex' : 'none'};\n align-items: center;\n justify-content: center;\n min-width: ${props => props.$isDot ? dot.size : count.minWidth};\n height: ${props => props.$isDot ? dot.size : count.height};\n padding: ${props => props.$isDot ? '0' : `0 ${semantic.space.inset.xs}`};\n border-radius: ${radius.full};\n line-height: ${count.lineHeight};\n white-space: nowrap;\n box-shadow: 0 0 0 ${ring.width} ${semantic.surface.base};\n animation: ${scaleIn} ${semantic.motion.duration.moderate} ${semantic.motion.easing.decelerate};\n\n ${reducedMotion} {\n animation: none;\n }\n\n /* Forced colours drop fills (decision 0038): a dot is only a fill, so it keeps one in the\n text colour; a count gets an edge around its number */\n ${props => props.$isDot\n ? `${forcedColors} { forced-color-adjust: none; background-color: CanvasText; }`\n : `${forcedColors} { border: ${semantic.border.width.thin} solid currentColor; }`}\n \n ${props => {\n switch (props.$variant) {\n case 'accent':\n return `\n background-color: ${color.fill.accent};\n color: ${color.text['on-fill']};\n `\n default:\n return `\n background-color: ${color.fill.emphasis};\n color: ${color.text.inverse};\n `\n }\n }}\n`\n\n// The count takes the indicator's colour, so each variant's content colour reaches it: inverse on\n// the strong fill, on-fill on the accent fill (decision 0056)\nconst Count = styled.span`\n font: ${semantic.typography.caption};\n text-transform: uppercase;\n`\n\nconst ScreenReaderOnly = styled.span`\n ${visuallyHidden}\n`\n\nexport const Badge: React.FC<BadgeProps> = ({\n children,\n count = 0,\n max = 99,\n variant = 'default',\n dot = false,\n 'aria-label': ariaLabel,\n className,\n 'data-testid': dataTestId\n}) => {\n const isVisible = dot || count > 0\n const displayCount = count > max ? `${max}+` : count.toString()\n \n // Generate default aria-label if not provided\n const defaultAriaLabel = dot \n ? 'New notification indicator'\n : count === 1 \n ? '1 notification' \n : `${count} notifications`\n \n const label = ariaLabel || defaultAriaLabel\n\n return (\n <BadgeWrapper className={className} data-testid={dataTestId}>\n {children}\n <BadgeIndicator\n $variant={variant}\n $isDot={dot}\n $isVisible={isVisible}\n role=\"status\"\n aria-live=\"polite\"\n >\n {!dot && (\n <Count>{displayCount}</Count>\n )}\n <ScreenReaderOnly>{label}</ScreenReaderOnly>\n </BadgeIndicator>\n </BadgeWrapper>\n )\n}\n","import tokens from './cssTokens'\nimport type { Tokens } from '../types/tokens'\n\n// Box's spacing and radius props keep their own names, which 3.0 decoupled from the removed\n// spacing.layout and border.radius tokens (P7, #99), and read the semantic grammar's tokens\n// (decision 0031). Each map covers every key the prop type allows, so TypeScript fails here if a\n// key is added without a mapping.\nconst { semantic } = tokens\nconst { color, space, radius, surface } = semantic\n\ntype Semantic = Tokens['semantic']\n\n/** Box's spacing values (`p`, `m`, `gap`…), each a `space` step, plus `auto`. */\nexport type BoxSpace =\n | 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | '8xl' | '9xl' | '10xl' | '11xl'\n | 'auto'\n\n/** Box's spacing props: each name maps to the space step that replaced its spacing.layout token. */\nexport const spaceByLayoutKey: Record<BoxSpace, string> = {\n none: space[0],\n xs: space[100],\n sm: space[200],\n md: space[300],\n lg: space[400],\n xl: space[500],\n '2xl': space[600],\n '3xl': space[700],\n '4xl': space[800],\n '5xl': space[900],\n '6xl': space[1000],\n '7xl': space[1200],\n '8xl': space[1400],\n '9xl': space[1600],\n '10xl': space[2000],\n '11xl': space[2400],\n // A keyword, not a step (0031)\n auto: semantic.spacing.layout.auto,\n}\n\n/** Box's `borderRadius` values: the `radius` steps, with `circle` for `full`. */\nexport type BoxRadius = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'circle'\n\n/** Box's `borderRadius` prop, read from `radius`. */\nexport const radiusByKey: Record<BoxRadius, string> = {\n none: radius.none,\n xs: radius.xs,\n sm: radius.sm,\n md: radius.md,\n lg: radius.lg,\n xl: radius.xl,\n '2xl': radius['2xl'],\n '3xl': radius['3xl'],\n circle: radius.full,\n}\n\n/**\n * Box's `bg` values in the semantic grammar (decision 0031, #304): the token's path below\n * `semantic`, such as `surface.raised` or `color.fill.muted`.\n */\nexport type BackgroundPath =\n | `surface.${keyof Semantic['surface']}`\n | `color.fill.${keyof Semantic['color']['fill']}`\n\n/** Box's `bg` prop: the grammar's token paths, read from the token at that path. */\nexport const backgroundByPath: Record<BackgroundPath, string> = {\n 'surface.base': surface.base,\n 'surface.raised': surface.raised,\n 'surface.overlay': surface.overlay,\n 'surface.scrim': surface.scrim,\n 'color.fill.emphasis': color.fill.emphasis,\n 'color.fill.muted': color.fill.muted,\n 'color.fill.inverse': color.fill.inverse,\n 'color.fill.accent': color.fill.accent,\n 'color.fill.accent-hover': color.fill['accent-hover'],\n 'color.fill.accent-pressed': color.fill['accent-pressed'],\n 'color.fill.accent-muted': color.fill['accent-muted'],\n 'color.fill.accent-muted-hover': color.fill['accent-muted-hover'],\n 'color.fill.accent-muted-pressed': color.fill['accent-muted-pressed'],\n 'color.fill.danger': color.fill.danger,\n 'color.fill.danger-hover': color.fill['danger-hover'],\n 'color.fill.danger-pressed': color.fill['danger-pressed'],\n 'color.fill.danger-muted': color.fill['danger-muted'],\n 'color.fill.success': color.fill.success,\n 'color.fill.success-muted': color.fill['success-muted'],\n 'color.fill.warning': color.fill.warning,\n 'color.fill.warning-muted': color.fill['warning-muted'],\n 'color.fill.serious': color.fill.serious,\n 'color.fill.serious-muted': color.fill['serious-muted'],\n 'color.fill.ai-muted': color.fill['ai-muted'],\n 'color.fill.disabled': color.fill.disabled,\n 'color.fill.default': color.fill.default,\n 'color.fill.default-hover': color.fill['default-hover'],\n 'color.fill.default-pressed': color.fill['default-pressed'],\n 'color.fill.none': color.fill.none,\n 'color.fill.none-hover': color.fill['none-hover'],\n 'color.fill.none-pressed': color.fill['none-pressed'],\n 'color.fill.inverse-none-hover': color.fill['inverse-none-hover'],\n}\n\n/** Box's `color` prop: the text colours. */\nexport const textColorByKey: Record<keyof Semantic['color']['text'], string> = color.text\n\n/** Box's border props: the border colours. */\nexport const borderColorByKey: Record<keyof Semantic['color']['border'], string> = color.border\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\nimport type { Tokens } from '../../../types/tokens'\nimport { backgroundByPath, borderColorByKey, radiusByKey, spaceByLayoutKey, textColorByKey } from '../../../lib/tokenAliases'\nimport type { BackgroundPath, BoxRadius, BoxSpace } from '../../../lib/tokenAliases'\n\nexport type { BoxRadius, BoxSpace }\nimport { reducedMotion } from '../../../lib/styleUtils'\n\n/**\n * Box's background: a semantic token's path below `semantic` (decision 0031), such as\n * `surface.base`, `surface.raised` or `color.fill.muted`. The old `semantic.color.background`\n * keys (`default`, `subtle`, `surface`…) were removed in 3.0 (#304).\n */\nexport type BoxBackground = BackgroundPath\n\n// Public props interface (without $ prefix, following atomic pattern)\nexport interface BoxProps {\n // Display\n display?: 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'none'\n \n // Flexbox\n flexDirection?: 'row' | 'column' | 'row-reverse' | 'column-reverse'\n justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'\n alignItems?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'\n flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse'\n gap?: BoxSpace\n \n // Spacing (using semantic layout tokens)\n m?: BoxSpace\n mt?: BoxSpace\n mr?: BoxSpace\n mb?: BoxSpace\n ml?: BoxSpace\n mx?: BoxSpace\n my?: BoxSpace\n p?: BoxSpace\n pt?: BoxSpace\n pr?: BoxSpace\n pb?: BoxSpace\n pl?: BoxSpace\n px?: BoxSpace\n py?: BoxSpace\n \n // Size\n width?: string\n height?: string\n maxWidth?: string\n maxHeight?: string\n minWidth?: string\n minHeight?: string\n \n // Position\n position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'\n top?: string\n right?: string\n bottom?: string\n left?: string\n \n // Borders\n borderRadius?: BoxRadius\n border?: keyof Tokens['semantic']['color']['border']\n borderTop?: keyof Tokens['semantic']['color']['border']\n borderRight?: keyof Tokens['semantic']['color']['border']\n borderBottom?: keyof Tokens['semantic']['color']['border']\n borderLeft?: keyof Tokens['semantic']['color']['border']\n \n // Background & Color\n /**\n * Background colour, as a semantic token path: `surface.base` (page), `surface.raised` (cards),\n * `surface.overlay` (floating layers such as menus and dialogs), `surface.scrim`, or a\n * `color.fill.*` fill such as `color.fill.muted`.\n */\n bg?: BoxBackground\n color?: keyof Tokens['semantic']['color']['text']\n \n // Elevation (shadow)\n shadow?: keyof Tokens['semantic']['elevation']\n \n // Cursor\n cursor?: 'auto' | 'default' | 'pointer' | 'wait' | 'text' | 'move' | 'help' | 'not-allowed'\n \n // Transition\n transition?: string\n \n // Hover states\n hoverShadow?: keyof Tokens['semantic']['elevation']\n hoverTransform?: string\n \n // Overflow\n overflow?: 'visible' | 'hidden' | 'scroll' | 'auto'\n overflowX?: 'visible' | 'hidden' | 'scroll' | 'auto'\n overflowY?: 'visible' | 'hidden' | 'scroll' | 'auto'\n \n // Polymorphic component support\n as?: React.ElementType\n \n // Standard props\n children?: React.ReactNode\n id?: string\n style?: React.CSSProperties\n onClick?: (event: React.MouseEvent) => void\n onKeyDown?: (event: React.KeyboardEvent) => void\n tabIndex?: number\n role?: string\n 'aria-label'?: string\n 'data-testid'?: string\n}\n\n// Internal styled props interface (with $ prefix)\ninterface StyledBoxProps {\n $display?: BoxProps['display']\n $flexDirection?: BoxProps['flexDirection']\n $justifyContent?: BoxProps['justifyContent']\n $alignItems?: BoxProps['alignItems']\n $flexWrap?: BoxProps['flexWrap']\n $gap?: BoxProps['gap']\n $m?: BoxProps['m']\n $mt?: BoxProps['mt']\n $mr?: BoxProps['mr']\n $mb?: BoxProps['mb']\n $ml?: BoxProps['ml']\n $mx?: BoxProps['mx']\n $my?: BoxProps['my']\n $p?: BoxProps['p']\n $pt?: BoxProps['pt']\n $pr?: BoxProps['pr']\n $pb?: BoxProps['pb']\n $pl?: BoxProps['pl']\n $px?: BoxProps['px']\n $py?: BoxProps['py']\n $width?: BoxProps['width']\n $height?: BoxProps['height']\n $maxWidth?: BoxProps['maxWidth']\n $maxHeight?: BoxProps['maxHeight']\n $minWidth?: BoxProps['minWidth']\n $minHeight?: BoxProps['minHeight']\n $position?: BoxProps['position']\n $top?: BoxProps['top']\n $right?: BoxProps['right']\n $bottom?: BoxProps['bottom']\n $left?: BoxProps['left']\n $borderRadius?: BoxProps['borderRadius']\n $border?: BoxProps['border']\n $borderTop?: BoxProps['borderTop']\n $borderRight?: BoxProps['borderRight']\n $borderBottom?: BoxProps['borderBottom']\n $borderLeft?: BoxProps['borderLeft']\n $bg?: BoxProps['bg']\n $color?: BoxProps['color']\n $shadow?: BoxProps['shadow']\n $cursor?: BoxProps['cursor']\n $transition?: BoxProps['transition']\n $hoverShadow?: BoxProps['hoverShadow']\n $hoverTransform?: BoxProps['hoverTransform']\n $overflow?: BoxProps['overflow']\n $overflowX?: BoxProps['overflowX']\n $overflowY?: BoxProps['overflowY']\n}\n\nconst StyledBox = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<StyledBoxProps>`\n ${props => props.$display && css`display: ${props.$display};`}\n \n // Flexbox\n ${props => props.$flexDirection && css`flex-direction: ${props.$flexDirection};`}\n ${props => props.$justifyContent && css`justify-content: ${props.$justifyContent};`}\n ${props => props.$alignItems && css`align-items: ${props.$alignItems};`}\n ${props => props.$flexWrap && css`flex-wrap: ${props.$flexWrap};`}\n ${props => props.$gap && css`gap: ${spaceByLayoutKey[props.$gap]};`}\n \n // Margin\n ${props => props.$m && css`margin: ${spaceByLayoutKey[props.$m]};`}\n ${props => props.$mt && css`margin-top: ${spaceByLayoutKey[props.$mt]};`}\n ${props => props.$mr && css`margin-right: ${spaceByLayoutKey[props.$mr]};`}\n ${props => props.$mb && css`margin-bottom: ${spaceByLayoutKey[props.$mb]};`}\n ${props => props.$ml && css`margin-left: ${spaceByLayoutKey[props.$ml]};`}\n ${props => props.$mx && css`\n margin-left: ${spaceByLayoutKey[props.$mx]};\n margin-right: ${spaceByLayoutKey[props.$mx]};\n `}\n ${props => props.$my && css`\n margin-top: ${spaceByLayoutKey[props.$my]};\n margin-bottom: ${spaceByLayoutKey[props.$my]};\n `}\n \n // Padding\n ${props => props.$p && css`padding: ${spaceByLayoutKey[props.$p]};`}\n ${props => props.$pt && css`padding-top: ${spaceByLayoutKey[props.$pt]};`}\n ${props => props.$pr && css`padding-right: ${spaceByLayoutKey[props.$pr]};`}\n ${props => props.$pb && css`padding-bottom: ${spaceByLayoutKey[props.$pb]};`}\n ${props => props.$pl && css`padding-left: ${spaceByLayoutKey[props.$pl]};`}\n ${props => props.$px && css`\n padding-left: ${spaceByLayoutKey[props.$px]};\n padding-right: ${spaceByLayoutKey[props.$px]};\n `}\n ${props => props.$py && css`\n padding-top: ${spaceByLayoutKey[props.$py]};\n padding-bottom: ${spaceByLayoutKey[props.$py]};\n `}\n \n // Size\n ${props => props.$width && css`width: ${props.$width};`}\n ${props => props.$height && css`height: ${props.$height};`}\n ${props => props.$maxWidth && css`max-width: ${props.$maxWidth};`}\n ${props => props.$maxHeight && css`max-height: ${props.$maxHeight};`}\n ${props => props.$minWidth && css`min-width: ${props.$minWidth};`}\n ${props => props.$minHeight && css`min-height: ${props.$minHeight};`}\n \n // Position\n ${props => props.$position && css`position: ${props.$position};`}\n ${props => props.$top && css`top: ${props.$top};`}\n ${props => props.$right && css`right: ${props.$right};`}\n ${props => props.$bottom && css`bottom: ${props.$bottom};`}\n ${props => props.$left && css`left: ${props.$left};`}\n \n // Borders\n ${props => props.$borderRadius && css`border-radius: ${radiusByKey[props.$borderRadius]};`}\n ${props => props.$border && borderColorByKey[props.$border] && css`border: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$border]};`}\n ${props => props.$borderTop && borderColorByKey[props.$borderTop] && css`border-top: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderTop]};`}\n ${props => props.$borderRight && borderColorByKey[props.$borderRight] && css`border-right: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderRight]};`}\n ${props => props.$borderBottom && borderColorByKey[props.$borderBottom] && css`border-bottom: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderBottom]};`}\n ${props => props.$borderLeft && borderColorByKey[props.$borderLeft] && css`border-left: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderLeft]};`}\n \n // Background & Color\n ${props => props.$bg && backgroundByPath[props.$bg] && css`background-color: ${backgroundByPath[props.$bg]};`}\n ${props => props.$color && textColorByKey[props.$color] && css`color: ${textColorByKey[props.$color]};`}\n \n // Elevation (shadow)\n ${props => props.$shadow && css`box-shadow: ${tokens.semantic.elevation[props.$shadow]};`}\n \n // Cursor\n ${props => props.$cursor && css`cursor: ${props.$cursor};`}\n \n // Transition\n ${props => props.$transition && css`transition: ${props.$transition};`}\n \n // Hover states\n ${props => (props.$hoverShadow || props.$hoverTransform) && css`\n &:hover {\n ${props.$hoverShadow && css`box-shadow: ${tokens.semantic.elevation[props.$hoverShadow]};`}\n ${props.$hoverTransform && css`transform: ${props.$hoverTransform};`}\n }\n \n /* Pressed settles back: the shadow drops to raised and any lift returns (issue 185). Pressing a\n control inside the card (an action button) presses that control, not the card. */\n &:active {\n transform: translateY(0);\n }\n\n ${props.$hoverShadow && css`\n &:active:not(:has(:is(button, a, [role=\"button\"]):active)) {\n box-shadow: ${tokens.semantic.elevation.raised};\n }\n `}\n \n &:focus-visible {\n outline: ${tokens.semantic.border.focus};\n outline-offset: ${tokens.semantic.border.focusOffset};\n }\n\n /* Reduced motion keeps the state change and drops the movement (decision 0015) */\n ${props.$hoverTransform && css`\n ${reducedMotion} {\n &:hover {\n transform: none;\n }\n }\n `}\n `}\n \n // Overflow\n ${props => props.$overflow && css`overflow: ${props.$overflow};`}\n ${props => props.$overflowX && css`overflow-x: ${props.$overflowX};`}\n ${props => props.$overflowY && css`overflow-y: ${props.$overflowY};`}\n`\n\n// Transform component that maps clean props to $-prefixed props for styled-components\nconst BoxTransform: React.FC<BoxProps> = (props) => {\n const {\n // Display\n display,\n \n // Flexbox\n flexDirection,\n justifyContent,\n alignItems,\n flexWrap,\n gap,\n \n // Spacing\n m,\n mt,\n mr,\n mb,\n ml,\n mx,\n my,\n p,\n pt,\n pr,\n pb,\n pl,\n px,\n py,\n \n // Size\n width,\n height,\n maxWidth,\n maxHeight,\n minWidth,\n minHeight,\n \n // Position\n position,\n top,\n right,\n bottom,\n left,\n \n // Borders\n borderRadius,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n \n // Background & Color\n bg,\n color,\n \n // Shadow\n shadow,\n \n // Cursor\n cursor,\n \n // Transition\n transition,\n \n // Hover states\n hoverShadow,\n hoverTransform,\n \n // Overflow\n overflow,\n overflowX,\n overflowY,\n \n // Standard props\n as,\n children,\n onClick,\n onKeyDown,\n tabIndex,\n role,\n 'aria-label': ariaLabel,\n 'data-testid': dataTestId,\n ...rest\n } = props\n\n return (\n <StyledBox\n as={as}\n data-testid={dataTestId}\n $display={display}\n $flexDirection={flexDirection}\n $justifyContent={justifyContent}\n $alignItems={alignItems}\n $flexWrap={flexWrap}\n $gap={gap}\n $m={m}\n $mt={mt}\n $mr={mr}\n $mb={mb}\n $ml={ml}\n $mx={mx}\n $my={my}\n $p={p}\n $pt={pt}\n $pr={pr}\n $pb={pb}\n $pl={pl}\n $px={px}\n $py={py}\n $width={width}\n $height={height}\n $maxWidth={maxWidth}\n $maxHeight={maxHeight}\n $minWidth={minWidth}\n $minHeight={minHeight}\n $position={position}\n $top={top}\n $right={right}\n $bottom={bottom}\n $left={left}\n $borderRadius={borderRadius}\n $border={border}\n $borderTop={borderTop}\n $borderRight={borderRight}\n $borderBottom={borderBottom}\n $borderLeft={borderLeft}\n $bg={bg}\n $color={color}\n $shadow={shadow}\n $cursor={cursor}\n $transition={transition}\n $hoverShadow={hoverShadow}\n $hoverTransform={hoverTransform}\n $overflow={overflow}\n $overflowX={overflowX}\n $overflowY={overflowY}\n onClick={onClick}\n onKeyDown={onKeyDown}\n tabIndex={tabIndex}\n role={role}\n aria-label={ariaLabel}\n {...rest}\n >\n {children}\n </StyledBox>\n )\n}\n\nexport const Box = BoxTransform\n","import React, { FC, ReactElement, SVGProps } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { iconSet } from '../../../types/iconSet'\nimport { type IconName, type IconPaint } from '../../../types/icons'\n\nexport type { IconName }\n\nexport interface IconProps {\n name: IconName\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'\n iconColor?: 'default' | 'emphasis' | 'subdued' | 'disabled' | 'inverse' | 'interactive' | 'error' | 'success' | 'warning' | 'inherit'\n /**\n * Makes the icon meaningful: it's announced as an image with this name. Without `aria-label`\n * or `title`, the icon is decorative and hidden from assistive technology (#85). Use a\n * human-readable name, never the internal icon name; the icon's `ariaLabelDefault` in `iconSet` is a\n * starting point.\n */\n 'aria-label'?: string\n /**\n * Like `aria-label`, and also shown as a tooltip. `aria-label` wins if both are given.\n */\n title?: string\n 'data-testid'?: string\n}\n\ninterface StyledIconProps {\n $size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'\n $iconColor: 'default' | 'emphasis' | 'subdued' | 'disabled' | 'inverse' | 'interactive' | 'error' | 'success' | 'warning' | 'inherit'\n}\n\nconst IconStyled = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledIconProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${({ $size }) => tokens.semantic.size.icon[$size]};\n height: ${({ $size }) => tokens.semantic.size.icon[$size]};\n \n svg {\n width: 100%;\n height: 100%;\n display: block;\n }\n \n /* Use semantic icon colors */\n color: ${({ $iconColor }) => {\n switch ($iconColor) {\n case 'default':\n return tokens.semantic.color.icon.default\n case 'emphasis':\n return tokens.semantic.color.icon.default\n case 'subdued':\n return tokens.semantic.color.icon.muted\n case 'disabled':\n return tokens.semantic.color.icon.disabled\n case 'inverse':\n return tokens.semantic.color.icon.inverse\n case 'interactive':\n return tokens.semantic.color.icon.accent\n case 'error':\n return tokens.semantic.color.icon.danger\n case 'success':\n return tokens.semantic.color.icon.success\n case 'warning':\n return tokens.semantic.color.icon.warning\n case 'inherit':\n return 'currentColor'\n default:\n return tokens.semantic.color.icon.default\n }\n }};\n`\n\n// How each paint draws, in currentColor. Lines are 2px on the 24px grid, so they scale with the\n// icon (decision 0058).\nconst LINE: SVGProps<SVGSVGElement> = {\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n}\nconst PAINT: Record<IconPaint, SVGProps<SVGSVGElement>> = {\n stroke: { fill: 'none', ...LINE },\n fill: { fill: 'currentColor' },\n both: { fill: 'currentColor', ...LINE }\n}\n\nexport const Icon: FC<IconProps> = ({\n name,\n size = 'lg',\n iconColor = 'default',\n 'aria-label': ariaLabel,\n title,\n 'data-testid': dataTestId\n}): ReactElement => {\n // Decorative unless it's given a name. A blank name is no name, so the icon stays hidden\n const label = ariaLabel?.trim() || title?.trim() || undefined\n\n const icon = iconSet[name]\n\n if (!icon) {\n console.warn(`Icon \"${name}\" not found in iconSet`)\n return <IconStyled $size={size} $iconColor={iconColor} data-testid={dataTestId} />\n }\n \n return (\n <IconStyled $size={size} $iconColor={iconColor} data-testid={dataTestId}>\n <svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...PAINT[icon.paint]}\n {...(label\n ? { role: 'img', 'aria-label': label }\n : { 'aria-hidden': true, focusable: false })}\n >\n {title?.trim() && <title>{title}</title>}\n {icon.elements.map(([tag, attributes], index) => React.createElement(tag, { key: index, ...attributes }))}\n </svg>\n </IconStyled>\n )\n}\n\nexport default Icon","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { Icon, type IconName } from '../Icon'\nimport { forcedColorsEdge } from '../../../lib/styleUtils'\n\nconst { component: { button }, semantic } = tokens\n// Height comes from size.control as a minimum and the content is centred, so there is no\n// vertical padding (decision 0034). Horizontal padding comes from the semantic spacing scale:\n// no component spacing tokens (decision 0022)\nconst inset = semantic.space.inset\nconst control = semantic.size.control\n\n/**\n * Button variants. `accent` is the blue call to action one level above `primary`;\n * use at most one per view (decision 0016).\n */\nexport type ButtonVariant =\n | 'primary'\n | 'secondary'\n | 'naked'\n | 'accent'\n | 'danger'\n\n// Base props shared between button and link\nexport interface BaseButtonProps {\n /**\n * Visual style. `accent` is the blue call to action above `primary` (at most one per view).\n * @default 'primary'\n */\n variant?: ButtonVariant\n size?: 'small' | 'medium' | 'large'\n url?: string\n purpose?: 'button' | 'link'\n target?: string\n children: React.ReactNode\n iconName?: IconName\n id?: string\n 'data-testid'?: string\n /**\n * Custom link component (e.g., Next.js Link, React Router Link)\n * Receives href, children, and other props\n * @example linkComponent={NextLink} or linkComponent={ReactRouterLink}\n */\n linkComponent?: React.ComponentType<any>\n}\n\n// Button-specific props\nexport interface ButtonProps extends BaseButtonProps, Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof BaseButtonProps> {\n purpose?: 'button'\n}\n\n// Link-specific props\nexport interface LinkProps extends BaseButtonProps, Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof BaseButtonProps> {\n purpose: 'link'\n}\n\n// Union type for the component\ntype CustomButtonProps = ButtonProps | LinkProps\n\ninterface StyledButtonProps {\n $variant: ButtonVariant\n $size: 'small' | 'medium' | 'large'\n}\n\n// Base styles shared between button and link\nconst baseButtonStyles = `\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: ${tokens.semantic.space[100]};\n height: max-content;\n cursor: pointer;\n border: none;\n text-decoration: none;\n transition: ${semantic.motion.transition.feedback};\n white-space: nowrap;\n user-select: none;\n \n /* The system ring for keyboard focus only: a click doesn't leave it behind (P2, P5) */\n &:focus-visible {\n outline: ${button.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n\n ${forcedColorsEdge}\n`\n\n// Dynamic variant styles using component tokens\nconst getVariantStyles = ({ $variant }: StyledButtonProps) => {\n const variantConfig = {\n primary: {\n bg: button.primary.backgroundColor,\n text: button.primary.textColor,\n hoverBg: button.hover.backgroundColor,\n activeBg: button.active.backgroundColor,\n disabledBg: button.disabled.backgroundColor,\n disabledText: button.disabled.textColor\n },\n secondary: {\n bg: button.variants.secondary.backgroundColor,\n text: button.variants.secondary.textColor,\n hoverBg: button.variants.secondary.hover.backgroundColor,\n activeBg: button.variants.secondary.active.backgroundColor,\n disabledBg: button.variants.secondary.disabled.backgroundColor,\n disabledText: button.variants.secondary.disabled.textColor\n },\n naked: {\n bg: button.variants.naked.backgroundColor,\n text: button.variants.naked.textColor,\n hoverBg: button.variants.naked.hover.backgroundColor,\n activeBg: button.variants.naked.active.backgroundColor,\n disabledBg: button.variants.naked.disabled.backgroundColor,\n disabledText: button.variants.naked.disabled.textColor\n },\n accent: {\n bg: button.variants.accent.backgroundColor,\n text: button.variants.accent.textColor,\n hoverBg: button.variants.accent.hover.backgroundColor,\n activeBg: button.variants.accent.active.backgroundColor,\n disabledBg: button.variants.accent.disabled.backgroundColor,\n disabledText: button.variants.accent.disabled.textColor\n },\n danger: {\n bg: button.variants.danger.backgroundColor,\n text: button.variants.danger.textColor,\n hoverBg: button.variants.danger.hover.backgroundColor,\n activeBg: button.variants.danger.active.backgroundColor,\n disabledBg: button.variants.danger.disabled.backgroundColor,\n disabledText: button.variants.danger.disabled.textColor\n }\n }\n \n // A removed variant (such as `emphasis`) passed from plain JavaScript renders as primary\n const config = variantConfig[$variant] ?? variantConfig.primary\n \n return `\n background-color: ${config.bg};\n color: ${config.text};\n \n &:hover:not(:disabled) {\n background-color: ${config.hoverBg};\n }\n\n &:active:not(:disabled) {\n background-color: ${config.activeBg};\n }\n\n &:disabled {\n background-color: ${config.disabledBg};\n color: ${config.disabledText};\n }\n `\n}\n\n// Dynamic size styles: font from component tokens, height from size.control (decision 0034)\nconst getSizeStyles = ({ $size }: StyledButtonProps) => {\n switch ($size) {\n case 'small':\n return `\n font: ${button.sizes.small.font};\n font-weight: ${button.sizes.small.fontWeight};\n min-height: ${control.sm};\n padding: 0 ${inset.md};\n `\n case 'medium':\n return `\n font: ${button.sizes.medium.font};\n min-height: ${control.md};\n padding: 0 ${inset.lg};\n `\n case 'large':\n default:\n return `\n font: ${button.sizes.large.font};\n min-height: ${control.lg};\n padding: 0 ${inset.lg};\n `\n }\n}\n\nconst StyledButton = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledButtonProps>`\n ${baseButtonStyles}\n border-radius: ${button.primary.borderRadius};\n \n ${getVariantStyles}\n ${getSizeStyles}\n`\n\nconst StyledLink = styled.a.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledButtonProps>`\n ${baseButtonStyles}\n border-radius: ${button.primary.borderRadius};\n \n ${getVariantStyles}\n ${getSizeStyles}\n`\n\n// Helper function to get icon size based on button size\nconst getIconSize = (buttonSize?: 'small' | 'medium' | 'large'): 'xs' | 'sm' | 'md' => {\n switch (buttonSize) {\n case 'small':\n return 'xs'\n case 'medium':\n return 'sm'\n case 'large':\n return 'md'\n default:\n return 'md'\n }\n}\n\n// Helper function to render button content with optional icon\nconst renderButtonContent = (children: React.ReactNode, iconName?: IconName, size?: 'small' | 'medium' | 'large') => {\n if (!iconName) return children\n \n const iconSize = getIconSize(size)\n \n return (\n <>\n <Icon name={iconName} size={iconSize} iconColor=\"inherit\" />\n {children}\n </>\n )\n}\n\nexport const Button: React.FC<CustomButtonProps> = ({ \n variant = \"primary\", \n size = \"large\", \n url, \n purpose = 'button', \n children, \n target,\n iconName,\n linkComponent: LinkComponent,\n 'data-testid': dataTestId,\n ...rest \n}) => {\n // For links with custom link component (e.g., Next.js Link, React Router Link)\n if (purpose === 'link' && url && LinkComponent) {\n // The link component renders the <a>, so anchor attributes (id, aria-*, rel, handlers) go to it\n const linkProps = rest as Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof BaseButtonProps>\n return (\n <LinkComponent {...linkProps} href={url} target={target}>\n <StyledLink \n as=\"span\"\n $variant={variant} \n $size={size} \n data-testid={dataTestId}\n >\n {renderButtonContent(children, iconName, size)}\n </StyledLink>\n </LinkComponent>\n )\n }\n \n // For standard links (external or without custom component)\n if (purpose === 'link' && url) {\n const linkProps = rest as Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof BaseButtonProps>\n return (\n <StyledLink \n {...linkProps}\n href={url} \n target={target} \n $variant={variant} \n $size={size}\n data-testid={dataTestId}\n >\n {renderButtonContent(children, iconName, size)}\n </StyledLink>\n )\n }\n \n // For button with URL (legacy support)\n if (purpose === 'button' && url) {\n const buttonProps = rest as Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof BaseButtonProps>\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n // Call any existing onClick handler first\n if (buttonProps.onClick) {\n buttonProps.onClick(e)\n }\n \n // Handle navigation\n if (url.startsWith('http') || target) {\n window.open(url, target || '_self')\n } else {\n window.location.href = url\n }\n }\n \n return (\n <StyledButton \n {...buttonProps}\n $variant={variant} \n $size={size}\n data-testid={dataTestId}\n onClick={handleClick}\n >\n {renderButtonContent(children, iconName, size)}\n </StyledButton>\n )\n }\n \n // Regular button\n const buttonProps = rest as Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof BaseButtonProps>\n return (\n <StyledButton \n $variant={variant} \n $size={size}\n data-testid={dataTestId}\n {...buttonProps}\n >\n {renderButtonContent(children, iconName, size)}\n </StyledButton>\n )\n}\n","import { ReactNode } from 'react'\nimport styled from 'styled-components'\nimport { Icon } from '../Icon/Icon'\nimport type { IconName } from '../../../types/icons'\nimport { visuallyHidden } from '../../../lib/styleUtils'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic } = tokens\nconst { color } = semantic\nconst { label } = tokens.component.badge\nconst { category } = color\nconst { radius } = semantic\nconst { space } = semantic\nconst { label: labelHeight } = semantic.size\n\n/**\n * The category colours: four display colours with no meaning, and grey for \"other\" (decision 0043).\n * They never mean status; for status use StatusLabel.\n */\nexport type CategoryDisplayColor = 'olive' | 'periwinkle' | 'rose' | 'magenta' | 'gray'\n\n/**\n * Category color options for CategoryLabel: the display colours (decision 0043). The old hue names\n * (blue, purple, pink, yellow, green, red, orange) were removed in 3.0.\n */\nexport type CategoryColor = CategoryDisplayColor\n\nconst displayColors: readonly CategoryDisplayColor[] = ['olive', 'periwinkle', 'rose', 'magenta', 'gray']\n\n/**\n * Visual variant options for CategoryLabel\n */\nexport type CategoryVariant = 'filled' | 'outlined' | 'minimal'\n\n/**\n * Size options for CategoryLabel: medium (24px) or large (32px), on the decision 0018 scale\n */\nexport type CategoryLabelSize = 'medium' | 'large'\n\n/**\n * Props for the CategoryLabel component\n */\nexport interface CategoryLabelProps {\n /**\n * The category text to display\n */\n children: ReactNode\n \n /**\n * Category colour: 'olive', 'periwinkle', 'rose', 'magenta' or 'gray' (decision 0043).\n * @default 'periwinkle'\n */\n color?: CategoryColor\n \n /**\n * Visual variant of the label\n * @default 'filled'\n */\n variant?: CategoryVariant\n \n /**\n * Size: medium (24px) or large (32px)\n * @default 'large'\n */\n size?: CategoryLabelSize\n \n /**\n * Optional icon name to display\n */\n icon?: IconName\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n \n /**\n * Accessible label, announced instead of the visible text (for example \"Category: Food & Dining\").\n * Rendered as visually hidden text, because a plain label has no role that can be named (#78).\n */\n 'aria-label'?: string\n}\n\n// Text on white or the -muted fill (outlined and minimal), at least 4.5:1 (#115)\nconst categoryText: Record<CategoryDisplayColor, string> = {\n olive: category['olive-text'],\n periwinkle: category['periwinkle-text'],\n rose: category['rose-text'],\n magenta: category['magenta-text'],\n gray: category['gray-text']\n}\n\ninterface StyledLabelProps {\n $color: CategoryDisplayColor\n $variant: CategoryVariant\n $size: CategoryLabelSize\n}\n\nconst StyledCategoryLabel = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledLabelProps>`\n box-sizing: border-box; /* the height includes padding and border, without relying on a global reset */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: ${radius.full};\n white-space: nowrap;\n user-select: none;\n border-style: solid;\n border-width: ${semantic.border.width.thin};\n \n /* Size styles */\n height: ${({ $size }) => labelHeight[$size]};\n padding: ${({ $size }) => $size === 'medium' \n ? `${space[100]} ${space[200]}` \n : `${space[200]} ${space[300]}`\n };\n font: ${({ $size }) => $size === 'medium' ? label.typography.small : label.typography.medium};\n /* After the font shorthand, which would otherwise reset it */\n font-weight: ${label.fontWeight};\n gap: ${space[100]};\n \n /* Variant + Color styles */\n background-color: ${({ $color, $variant }) => {\n if ($variant === 'filled') {\n return category[`${$color}-strong` as keyof typeof category]\n }\n if ($variant === 'outlined') {\n return 'transparent'\n }\n // minimal\n return category[`${$color}-muted` as keyof typeof category]\n }};\n \n /* Outlined and minimal text uses the AA text token, not the base colour (issue 115) */\n color: ${({ $color, $variant }) => {\n if ($variant === 'filled') {\n return color.text.inverse\n }\n return categoryText[$color]\n }};\n \n border-color: ${({ $color, $variant }) => {\n if ($variant === 'outlined') {\n return category[$color as keyof typeof category]\n }\n return 'transparent'\n }};\n`\n\n// The visible content, hidden from assistive technology when an aria-label replaces it.\n// display: contents keeps the root's flex layout and gap.\nconst VisibleContent = styled.span`\n display: contents;\n`\n\nconst HiddenLabel = styled.span`\n ${visuallyHidden}\n`\n\n/**\n * CategoryLabel colour-codes an item's category, such as a transaction's (decision 0018).\n *\n * A static, chip-like label with 4 display colours plus grey, 3 visual variants and an optional\n * icon. Category colours carry no meaning (decision 0043); for status use StatusLabel. Beyond five\n * categories, the icon and text tell them apart.\n *\n * @example\n * ```tsx\n * <CategoryLabel color=\"rose\" icon=\"creditCard\">\n * Shopping\n * </CategoryLabel>\n *\n * <CategoryLabel color=\"periwinkle\" variant=\"outlined\" size=\"medium\">\n * Travel\n * </CategoryLabel>\n * ```\n */\nexport const CategoryLabel: React.FC<CategoryLabelProps> = ({\n children,\n color = 'periwinkle',\n variant = 'filled',\n size = 'large',\n icon,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel\n}) => {\n const iconSize = size === 'medium' ? 'xs' : 'sm'\n // A blank aria-label is no label at all, so it falls back like a missing one\n const accessibleLabel = ariaLabel?.trim() ? ariaLabel : undefined\n\n return (\n <StyledCategoryLabel\n // A removed hue name passed from plain JavaScript renders as the default, periwinkle\n $color={displayColors.includes(color) ? color : 'periwinkle'}\n $variant={variant}\n $size={size}\n data-testid={dataTestId}\n >\n <VisibleContent aria-hidden={accessibleLabel ? 'true' : undefined}>\n {icon && (\n <Icon\n name={icon}\n size={iconSize}\n iconColor={variant === 'filled' ? 'inverse' : 'inherit'}\n />\n )}\n {children}\n </VisibleContent>\n {accessibleLabel && <HiddenLabel>{accessibleLabel}</HiddenLabel>}\n </StyledCategoryLabel>\n )\n}\n\nCategoryLabel.displayName = 'CategoryLabel'\n","import tokens from '../../../../lib/cssTokens'\nimport { forcedColors } from '../../../../lib/styleUtils'\nimport { ChipSurface } from './types'\n\nconst { component: { chip }, semantic } = tokens\n\ninterface StyledChipProps {\n $surface: ChipSurface\n $disabled?: boolean\n $clickable?: boolean\n $selected?: boolean\n}\n\n// The chip's fill and text for its surface and state, matching Button's approach\nexport const getVariantStyles = ({ $surface, $selected, $clickable, $disabled }: StyledChipProps) => {\n // Selected filter and input chips use the light-blue selected treatment (decision 0016).\n // The text darkens with the fill so every state stays at least 4.5:1.\n if ($selected) {\n // A selected disabled chip looks like any disabled chip; the checkmark keeps the\n // selected state visible (#110)\n if ($disabled) {\n const { disabled } = chip.variants.subtle\n return `\n background-color: ${disabled.backgroundColor};\n color: ${disabled.textColor};\n `\n }\n\n const { fill, text } = tokens.semantic.color\n const interactiveStates = $clickable\n return `\n background-color: ${fill['accent-muted']};\n color: ${text.accent};\n \n &:hover {\n background-color: ${interactiveStates ? fill['accent-muted-hover'] : fill['accent-muted']};\n color: ${interactiveStates ? text.accent : text.accent};\n }\n \n &:active {\n background-color: ${interactiveStates ? fill['accent-muted-pressed'] : fill['accent-muted']};\n color: ${interactiveStates ? text.accent : text.accent};\n }\n\n /* Forced colours drop the fill, so a selected chip takes the system selection colours\n (decision 0038); its checkmark follows the text colour */\n ${forcedColors} {\n forced-color-adjust: none;\n background-color: Highlight;\n border-color: Highlight;\n color: HighlightText;\n }\n `\n }\n \n switch ($surface) {\n case 'subtle':\n return `\n background-color: ${chip.variants.subtle.backgroundColor};\n color: ${chip.variants.subtle.textColor};\n \n &:hover {\n background-color: ${$disabled ? chip.variants.subtle.disabled.backgroundColor : ($clickable ? chip.variants.subtle.hover.backgroundColor : chip.variants.subtle.backgroundColor)};\n }\n \n &:active {\n background-color: ${$disabled ? chip.variants.subtle.disabled.backgroundColor : ($clickable ? chip.variants.subtle.active.backgroundColor : chip.variants.subtle.backgroundColor)};\n }\n \n ${$disabled ? `\n background-color: ${chip.variants.subtle.disabled.backgroundColor};\n color: ${chip.variants.subtle.disabled.textColor};\n ` : ''}\n `\n case 'default':\n default:\n return `\n background-color: ${chip.default.backgroundColor};\n color: ${chip.default.textColor};\n \n ${$disabled ? `\n background-color: ${chip.disabled.backgroundColor};\n color: ${chip.disabled.textColor};\n ` : ''}\n `\n }\n}\n\n// Chips have one size: 24px from the label scale as a minimum, with the content centred\n// and no vertical padding (decisions 0034 and 0035). Horizontal padding comes from the\n// semantic spacing scale (decision 0022).\nexport const sizeStyles = `\n font: ${chip.sizes.medium.font};\n min-height: ${semantic.size.label.medium};\n padding: 0 ${semantic.space.inset.sm};\n`\n\n","import styled from 'styled-components'\nimport tokens from '../../../../lib/cssTokens'\nimport { InternalStyledProps } from './types'\nimport { getVariantStyles, sizeStyles } from './utils'\nimport { forcedColors, forcedColorsEdge } from '../../../../lib/styleUtils'\n\nconst { component: { chip }, semantic } = tokens\n\n// Base styled component using direct prop interpolation like Button\nexport const StyledChip = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<InternalStyledProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: fit-content;\n height: max-content;\n border-radius: ${chip.default.borderRadius};\n box-sizing: border-box;\n user-select: none;\n white-space: nowrap;\n transition: ${semantic.motion.transition.feedback};\n cursor: ${props => props.$disabled ? 'not-allowed' : (props.$clickable ? 'pointer' : 'default')};\n \n /* Forced colours: an edge, and GrayText when disabled, since a span gets no system disabled\n colour (decision 0038). Before the variant styles, so a selected chip's Highlight border wins. */\n ${forcedColorsEdge}\n ${props => props.$disabled ? `${forcedColors} { color: GrayText; }` : ''}\n\n ${getVariantStyles}\n ${sizeStyles}\n \n &:focus-visible {\n outline: ${chip.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n }\n\n`\n\n// Icon container for selected indicator or leading icons\nexport const IconContainer = styled.span`\n display: inline-flex;\n align-items: center;\n margin-right: ${tokens.semantic.space[100]};\n`\n\n// Close button for dismissible chips\nexport const CloseButton = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $disabled?: boolean }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-left: ${tokens.semantic.space[200]};\n background: transparent;\n border: none;\n position: relative;\n width: ${chip.closeButton.size};\n height: ${chip.closeButton.size};\n padding: ${tokens.semantic.space[0]};\n\n /* The pointer target is at least 24 × 24px (WCAG 2.5.8, decision 0039): an invisible hit area\n as tall as the chip, centred on the 20px button. It stays inside the chip and its padding, so\n it can't overlap another target. */\n &::before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: ${semantic.size.label.medium};\n height: ${semantic.size.label.medium};\n transform: translate(-50%, -50%);\n }\n border-radius: ${tokens.semantic.radius.full};\n cursor: ${props => props.$disabled ? 'not-allowed' : 'pointer'};\n color: inherit;\n transition: ${semantic.motion.transition.feedback};\n \n &:hover:not(:disabled) {\n background-color: ${tokens.semantic.color.fill['none-hover']};\n }\n \n &:active:not(:disabled) {\n background-color: ${tokens.semantic.color.fill['none-pressed']};\n }\n \n &:disabled {\n color: ${tokens.semantic.color.text.disabled};\n }\n \n &:focus-visible {\n outline: ${chip.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n border-radius: ${chip.default.borderRadius};\n }\n`\n","import React from 'react'\nimport { BaseChipProps, ChipVariant } from './shared/types'\nimport { StyledChip } from './shared/ChipBase'\n\nexport interface ChipProps extends BaseChipProps {\n /**\n * Visual style. The static Chip has one, `default` (decision 0016).\n * @default 'default'\n */\n variant?: ChipVariant\n /** Custom ARIA role override */\n role?: string\n /** Legacy title prop for backward compatibility */\n title?: string\n}\n\n/**\n * Chip - a static, non-interactive label for tags, categories and metadata.\n *\n * Chips are classified by job (decision 0016):\n * - Chip: a static label\n * - FilterChip: toggles a filter on and off\n * - InputChip: a removable value, such as an applied filter\n * - SuggestionChip: fills the agent input with a suggestion\n *\n * For a clickable action, use a Button.\n */\nexport const Chip: React.FC<ChipProps> = ({\n children,\n // One variant: a removed one passed from plain JavaScript renders as default\n variant: _variant,\n disabled = false,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n role,\n title,\n ...props\n}) => {\n // Removed props passed from plain JavaScript stay off the DOM\n const { onClick: _onClick, size: _size, ...domProps } = props as typeof props & { onClick?: unknown; size?: unknown }\n\n // Support legacy title prop\n const content = children !== undefined ? children : title\n\n return (\n <StyledChip\n $surface=\"default\"\n $disabled={disabled || undefined}\n role={role}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled ? 'true' : undefined}\n data-testid={dataTestId}\n {...domProps}\n >\n {content}\n </StyledChip>\n )\n}\n","import React from 'react'\nimport { Icon } from '../Icon'\nimport { BaseChipProps } from './shared/types'\nimport { StyledChip, IconContainer, CloseButton } from './shared/ChipBase'\n\nexport interface InputChipProps extends BaseChipProps {\n /** Whether the filter is in selected/applied state */\n selected?: boolean\n /** Callback function when the chip is dismissed via close button or keyboard */\n onDismiss?: () => void\n /** Custom ARIA role override */\n role?: string\n}\n\n/**\n * InputChip - A removable value, such as an applied filter, with an optional selected state\n * \n * Use this component to show values the user has entered or applied, such as filters.\n * When selected, displays a checkmark on the light-blue selected treatment (decision 0016).\n * A selected disabled chip uses the disabled colours and keeps its checkmark.\n * Optionally dismissible when onDismiss is provided.\n * \n * Features:\n * - Shows checkmark icon when selected\n * - Light-blue fill and blue text when selected and enabled; disabled colours when disabled\n * - Optional close (×) button when onDismiss is provided\n * - Keyboard dismissal with Delete or Backspace keys (when dismissible)\n * - Non-clickable body (only close button is interactive when present)\n * - Announces as \"status\" to screen readers\n */\nexport const InputChip: React.FC<InputChipProps> = ({\n children,\n selected = false,\n onDismiss,\n disabled = false,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n role,\n ...props\n}) => {\n const isDismissible = Boolean(onDismiss)\n \n const handleDismiss = (event: React.MouseEvent) => {\n event.stopPropagation() // Prevent event bubbling\n if (!disabled && onDismiss) {\n onDismiss()\n }\n }\n \n const handleKeyDown = (event: React.KeyboardEvent) => {\n // Handle dismiss with Delete or Backspace (only when dismissible)\n if (!disabled && isDismissible && onDismiss && (event.key === 'Delete' || event.key === 'Backspace')) {\n event.preventDefault()\n onDismiss()\n }\n }\n \n const handleCloseKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n if (!disabled && onDismiss) onDismiss()\n }\n }\n \n // Generate accessible label for close button\n const closeButtonLabel = typeof children === 'string' ? `Remove ${children}` : 'Remove filter'\n \n return (\n <StyledChip\n $surface=\"subtle\"\n $disabled={disabled || undefined}\n $clickable={false}\n $selected={selected}\n onKeyDown={handleKeyDown}\n role={role || 'status'}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled ? 'true' : undefined}\n data-testid={dataTestId}\n {...props}\n >\n {/* Show selected indicator when selected */}\n {selected && (\n <IconContainer aria-hidden=\"true\">\n <Icon name=\"check\" size=\"sm\" iconColor=\"inherit\" />\n </IconContainer>\n )}\n \n {children}\n \n {/* Show close button only when dismissible */}\n {isDismissible && (\n <CloseButton\n type=\"button\"\n onClick={handleDismiss}\n onKeyDown={handleCloseKeyDown}\n disabled={disabled}\n $disabled={disabled}\n aria-label={closeButtonLabel}\n tabIndex={0}\n data-testid={dataTestId ? `${dataTestId}-close` : undefined}\n >\n <Icon name=\"close\" size=\"sm\" iconColor=\"inherit\" />\n </CloseButton>\n )}\n </StyledChip>\n )\n}\n","import React from 'react'\nimport { Icon } from '../Icon'\nimport { BaseChipProps } from './shared/types'\nimport { StyledChip, IconContainer } from './shared/ChipBase'\n\nexport interface FilterChipProps extends BaseChipProps {\n /** Whether the chip is in selected state */\n selected: boolean\n /** Callback function when the chip is clicked/toggled */\n onClick: () => void\n}\n\n/**\n * FilterChip - Toggleable chip for quick filter controls (decision 0016)\n * \n * Use this component for multi-select filter controls where users can\n * see which options are active. Common in table filtering patterns where\n * users toggle filters on/off.\n * \n * Features:\n * - Shows checkmark icon when selected\n * - Entire chip is clickable to toggle\n * - Keyboard activation with Space or Enter\n * - Uses checkbox role with aria-checked\n * - Light-blue fill and blue text when selected and enabled; disabled colours when disabled\n *\n * Called `BooleanChip` before 3.0. For a removable value, use InputChip.\n */\nexport const FilterChip: React.FC<FilterChipProps> = ({\n children,\n selected,\n onClick,\n disabled = false,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}) => {\n const handleClick = () => {\n // Optional call: a plain JavaScript app that kept the pre-3.0 FilterChip (now InputChip) passes\n // no onClick, and its chip should stay inert rather than throw\n if (!disabled) {\n onClick?.()\n }\n }\n \n const handleKeyDown = (event: React.KeyboardEvent) => {\n // Handle activation with Space or Enter\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n handleClick()\n }\n }\n \n return (\n <StyledChip\n $surface=\"subtle\"\n $disabled={disabled || undefined}\n $clickable={!disabled}\n $selected={selected}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n tabIndex={disabled ? undefined : 0}\n role=\"checkbox\"\n aria-checked={selected ? 'true' : 'false'}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled ? 'true' : undefined}\n data-testid={dataTestId}\n {...props}\n >\n {/* Show selected indicator when selected */}\n {selected && (\n <IconContainer aria-hidden=\"true\">\n <Icon name=\"check\" size=\"sm\" iconColor=\"inherit\" />\n </IconContainer>\n )}\n \n {children}\n </StyledChip>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\nimport { forcedColors } from '../../../lib/styleUtils'\nimport { sizeStyles } from './shared/utils'\n\nconst { component: { chip }, semantic } = tokens\nconst { color } = semantic\n\nexport interface SuggestionChipProps {\n /** The suggestion. It's also the button's accessible name, so keep it short and self-explanatory. */\n children: React.ReactNode\n /** Called when the suggestion is picked. Put its text in the input; never send it (decision 0046). */\n onClick: () => void\n /** Disables the chip */\n disabled?: boolean\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\n// Outlined, with the naked fill ladder on hover and press (decisions 0030, 0046): the edge keeps it\n// visible on white, the page and AgentInput's docked band\nconst StyledSuggestionChip = styled.button`\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n margin: 0;\n box-sizing: border-box;\n border: ${semantic.border.width.thin} solid ${color.border.input};\n border-radius: ${chip.default.borderRadius};\n background-color: ${color.fill.none};\n color: ${color.text.default};\n cursor: pointer;\n text-align: start;\n /* A long suggestion wraps inside the chip rather than being cut off (issue 279) */\n white-space: normal;\n overflow-wrap: anywhere;\n transition: ${semantic.motion.transition.feedback};\n ${sizeStyles}\n\n &:hover:not(:disabled) {\n background-color: ${color.fill['none-hover']};\n }\n\n &:active:not(:disabled) {\n background-color: ${color.fill['none-pressed']};\n }\n\n &:focus-visible {\n outline: ${chip.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n }\n\n &:disabled {\n border-color: ${color.border.default};\n color: ${color.text.disabled};\n cursor: not-allowed;\n }\n\n /* Forced colours: a native button gets ButtonBorder and GrayText; keep the edge (decision 0038) */\n ${forcedColors} {\n border-color: ButtonBorder;\n\n &:disabled {\n border-color: GrayText;\n }\n }\n`\n\n/**\n * SuggestionChip - Offers text to put in the agent input\n *\n * The Suggestion chip type from decision 0046 (amending 0016): the one chip that acts on click.\n * Picking it fills the input so the user can edit before sending; it never sends or runs a command,\n * which is why it's a chip and not a Button. AgentInput renders these from its `suggestions` prop.\n *\n * Features:\n * - A native button: Enter and Space pick it, and its text is its accessible name\n * - Outlined, with the naked hover and pressed fills; no selected state\n * - One chip height (24px minimum, decision 0035); long text wraps instead of being cut off\n */\nexport const SuggestionChip: React.FC<SuggestionChipProps> = ({\n children,\n onClick,\n disabled = false,\n 'data-testid': dataTestId,\n}) => (\n <StyledSuggestionChip type=\"button\" onClick={onClick} disabled={disabled} data-testid={dataTestId}>\n {children}\n </StyledSuggestionChip>\n)\n\nSuggestionChip.displayName = 'SuggestionChip'\n","import React from 'react'\nimport styled from 'styled-components'\nimport { breakpoints, media } from '../../../lib/styleUtils'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic: { space } } = tokens\n\nexport type ContainerProps = {\n children?: React.ReactNode\n 'data-testid'?: string\n} & React.HTMLAttributes<HTMLDivElement>\n\nconst StyledContainer = styled.div`\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n padding-left: ${space[600]};\n padding-right: ${space[600]};\n \n ${media.sm} {\n max-width: ${breakpoints.sm};\n }\n \n ${media.md} {\n max-width: ${breakpoints.md};\n }\n \n ${media.lg} {\n max-width: ${breakpoints.lg};\n }\n \n ${media.xl} {\n max-width: ${breakpoints.xl};\n }\n \n ${media['2xl']} {\n max-width: ${breakpoints['2xl']};\n }\n`\n\nexport const Container = ({ children, ...props }: ContainerProps) => {\n return <StyledContainer {...props}>{children}</StyledContainer>\n}","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { media } from '../../../lib/styleUtils'\n\n\ntype PictureProps = {\n title: string\n src: string\n width?: number\n height?: number\n onClick?: () => void\n href?: string\n 'data-testid'?: string\n}\n\nconst PictureWrapper = styled.div`\n margin: 0 auto;\n \n ${media.sm} {\n margin-left: 0;\n margin-right: 0;\n }\n`\n\n// A clickable image answers input on the image itself (decision 0029, #185): it fades on hover and\n// one step further while pressed, and draws the system focus ring around the image, following its\n// rounded corners. Fading isn't movement, so it stays under reduced motion.\nconst clickableImage = css`\n display: block;\n cursor: pointer;\n\n img {\n transition: ${tokens.semantic.motion.transition.press};\n }\n\n &:hover img {\n opacity: ${tokens.semantic.opacity.hover};\n }\n\n &:active img {\n opacity: ${tokens.semantic.opacity.pressed};\n }\n\n &:focus-visible {\n outline: none;\n }\n\n &:focus-visible img {\n outline: ${tokens.semantic.border.focus};\n outline-offset: ${tokens.semantic.border.focusOffset};\n }\n`\n\nconst ImageLink = styled.a`\n ${clickableImage}\n`\n\nconst ImageButton = styled.button`\n border: none;\n background: none;\n padding: 0;\n width: 100%;\n ${clickableImage}\n`\n\nconst StyledImage = styled.img`\n width: 100%;\n height: auto;\n border-radius: ${tokens.semantic.radius.sm};\n display: block;\n`\n\nexport const Picture: React.FC<PictureProps> = ({ \n title, \n src, \n width = 1300, \n height = 630,\n onClick,\n href,\n 'data-testid': dataTestId\n}) => {\n const image = (\n <StyledImage\n src={src}\n alt={title}\n width={width}\n height={height}\n />\n )\n\n return (\n <PictureWrapper data-testid={dataTestId}>\n {href ? (\n <ImageLink href={href} aria-label={`Read more about ${title}`}>\n {image}\n </ImageLink>\n ) : onClick ? (\n <ImageButton onClick={onClick} aria-label={`Read more about ${title}`}>\n {image}\n </ImageButton>\n ) : (\n image\n )}\n </PictureWrapper>\n )\n}\n","import React from 'react'\nimport { parseISO, format, isToday, isYesterday, isThisWeek, startOfWeek } from 'date-fns'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic: { typography, color } } = tokens\n\n/**\n * How DateFormatter shows a date. `'relative'`, an alias of `'smart'`, was removed in 3.0 (#82).\n */\nexport type DateFormatMode = 'absolute' | 'smart'\n\nexport interface DateFormatterProps {\n /** ISO date string to format */\n dateString: string\n /** Format pattern (defaults to 'yyyy') */\n formatString?: string\n /**\n * `'absolute'` always uses `formatString`. `'smart'` shows \"Today\", \"Yesterday\" or the day name\n * for dates this week, and formats older dates with `formatString`.\n * @default 'absolute'\n */\n mode?: DateFormatMode\n /** Optional data-testid for testing */\n 'data-testid'?: string\n}\n\nconst TimeStyled = styled.time`\n font: ${typography.label};\n color: ${color.text.muted};\n`\n\n/**\n * Formats a date with smart relative/absolute logic\n */\nconst formatDateSmart = (date: Date, customFormat?: string): string => {\n // Relative labels for recent dates\n if (isToday(date)) return 'Today'\n if (isYesterday(date)) return 'Yesterday'\n \n // Show day name for dates within this week\n if (isThisWeek(date, { weekStartsOn: 1 })) {\n return format(date, 'EEEE') // \"Monday\", \"Tuesday\", etc.\n }\n \n // Fall back to custom format or default full date format\n return format(date, customFormat || 'MMMM dd, yyyy')\n}\n\nexport const DateFormatter: React.FC<DateFormatterProps> = ({ \n dateString, \n formatString,\n mode = 'absolute',\n 'data-testid': dataTestId\n}) => {\n const date = parseISO(dateString)\n \n let displayText: string\n \n switch (mode) {\n case 'smart':\n // Today, Yesterday or the day name for recent dates; formatted for older ones\n displayText = formatDateSmart(date, formatString)\n break\n case 'absolute':\n default:\n // Always use the format string (default 'yyyy')\n displayText = format(date, formatString || 'yyyy')\n break\n }\n \n return (\n <TimeStyled dateTime={dateString} data-testid={dataTestId}>\n {displayText}\n </TimeStyled>\n )\n}","import React from 'react'\nimport styled from 'styled-components'\nimport { Icon, type IconName } from '../Icon'\nimport tokens from '@/lib/cssTokens'\nimport { forcedColorsEdge } from '../../../lib/styleUtils'\n\nconst { semantic: { motion, border, space, size }, component: { iconButton, button } } = tokens\n\n// Height and width come from size.control as a minimum (decision 0034)\nconst control = {\n small: size.control.sm,\n medium: size.control.md,\n large: size.control.lg,\n} as const\n\n// Padding comes from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst padding = {\n small: space.inset.xs,\n medium: space.inset.sm,\n large: space.inset.md,\n} as const\n\nexport interface IconButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant: 'primary' | 'secondary' | 'naked'\n size?: 'small' | 'medium' | 'large'\n iconName: IconName\n url?: string\n // Accessibility props\n 'aria-label': string // Required for screen readers\n 'aria-describedby'?: string\n 'aria-expanded'?: boolean\n 'aria-pressed'?: boolean\n 'data-testid'?: string\n}\n\ninterface StyledButtonProps {\n $variant: 'primary' | 'secondary' | 'naked'\n $size: 'small' | 'medium' | 'large'\n}\n\n// Colours and motion come from Button's tokens, so IconButton's variants look and behave exactly like\n// Button's in every state (#130). Only the size and the icon differ\nconst variants = {\n primary: {\n bg: button.primary.backgroundColor,\n text: button.primary.textColor,\n hoverBg: button.hover.backgroundColor,\n activeBg: button.active.backgroundColor,\n disabledBg: button.disabled.backgroundColor,\n disabledText: button.disabled.textColor,\n },\n secondary: {\n bg: button.variants.secondary.backgroundColor,\n text: button.variants.secondary.textColor,\n hoverBg: button.variants.secondary.hover.backgroundColor,\n activeBg: button.variants.secondary.active.backgroundColor,\n disabledBg: button.variants.secondary.disabled.backgroundColor,\n disabledText: button.variants.secondary.disabled.textColor,\n },\n naked: {\n bg: button.variants.naked.backgroundColor,\n text: button.variants.naked.textColor,\n hoverBg: button.variants.naked.hover.backgroundColor,\n activeBg: button.variants.naked.active.backgroundColor,\n disabledBg: button.variants.naked.disabled.backgroundColor,\n disabledText: button.variants.naked.disabled.textColor,\n },\n} as const\n\n// JavaScript callers can pass any string, so an unknown variant falls back to primary, as before\nconst colours = (variant: StyledButtonProps['$variant']) => variants[variant] ?? variants.primary\n\nconst IconButtonStyled = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledButtonProps>`\n background-color: ${({ $variant }) => colours($variant).bg};\n color: ${({ $variant }) => colours($variant).text};\n border: none;\n border-radius: ${iconButton.primary.borderRadius};\n transition: ${motion.transition.feedback};\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n height: max-content;\n cursor: pointer;\n position: relative;\n\n min-width: ${({ $size }) => control[$size]};\n min-height: ${({ $size }) => control[$size]};\n padding: ${({ $size }) => padding[$size]};\n\n &:hover:not(:disabled) {\n background-color: ${({ $variant }) => colours($variant).hoverBg};\n }\n\n &:active:not(:disabled) {\n background-color: ${({ $variant }) => colours($variant).activeBg};\n }\n\n /* The system ring for keyboard focus only: a click doesn't leave it behind (P2, P5) */\n &:focus-visible {\n outline: ${iconButton.focus.outline};\n outline-offset: ${border.focusOffset};\n }\n\n &:disabled {\n background-color: ${({ $variant }) => colours($variant).disabledBg};\n color: ${({ $variant }) => colours($variant).disabledText};\n cursor: not-allowed;\n }\n\n ${forcedColorsEdge}\n`\n\nexport const IconButton: React.FC<IconButtonProps> = ({ \n variant, \n size = 'medium', \n url, \n iconName = 'close',\n onClick,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n 'aria-expanded': ariaExpanded,\n 'aria-pressed': ariaPressed,\n 'data-testid': dataTestId,\n disabled,\n type = 'button',\n ...htmlProps \n}) => {\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (onClick) {\n onClick(event)\n } else if (url && url.trim() !== '') {\n // Use proper navigation instead of direct href assignment\n if (url.startsWith('http') || url.startsWith('//')) {\n window.open(url, '_blank', 'noopener,noreferrer')\n } else {\n window.location.assign(url)\n }\n }\n }\n\n const iconSize = size === 'large' ? 'lg' : size === 'small' ? 'sm' : 'md'\n \n return (\n <IconButtonStyled \n $variant={variant} \n $size={size} \n onClick={handleClick}\n disabled={disabled}\n type={type}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n aria-expanded={ariaExpanded}\n aria-pressed={ariaPressed}\n data-testid={dataTestId}\n {...htmlProps}\n >\n <Icon \n name={iconName} \n size={iconSize} \n iconColor=\"inherit\"\n aria-hidden=\"true\" // Hide icon from screen readers since button has aria-label\n />\n </IconButtonStyled>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic: { typography, color, letterSpacing } } = tokens\n\nexport type TypographyVariant = \n | 'display' \n | 'h1' \n | 'h2' \n | 'h3' \n | 'h4' \n | 'h5' \n | 'h6' \n | 'subtitle' \n | 'body' \n | 'small' \n | 'overline' \n | 'caption' \n | 'button1' \n | 'button2' \n | 'button3' \n | 'label'\n\nexport type TypographyColor = \"default\" | \"emphasis\" | \"subdued\" | \"inverse\" | \"disabled\" | \"interactive\" | \"error\" | \"success\" | \"warning\"\n\nexport interface TypographyProps {\n /** Typography variant defining the semantic meaning and style */\n variant?: TypographyVariant\n /** Color variant for the text */\n color?: TypographyColor\n /** Content to render */\n children: React.ReactNode\n /** HTML element to render as (overrides default semantic element) */\n as?: React.ElementType\n /** Data test id for testing */\n 'data-testid'?: string\n}\n\ninterface StyledTypographyProps {\n $variant: TypographyVariant\n $color: TypographyColor\n}\n\nconst getTypographyStyles = (variant: TypographyVariant) => {\n const styles = {\n display: `font: ${typography.display}; letter-spacing: ${letterSpacing.tighter};`,\n h1: `font: ${typography.h1}; letter-spacing: ${letterSpacing.tighter};`,\n h2: `font: ${typography.h2}; letter-spacing: ${letterSpacing.tight};`,\n h3: `font: ${typography.h3}; letter-spacing: ${letterSpacing.tight};`,\n h4: `font: ${typography.h4}; letter-spacing: ${letterSpacing.tight};`,\n h5: `font: ${typography.h5}; letter-spacing: ${letterSpacing.normal};`,\n h6: `font: ${typography.h6}; letter-spacing: ${letterSpacing.normal};`,\n subtitle: `font: ${typography.subtitle};`,\n body: `font: ${typography.body};`,\n small: `font: ${typography.small};`,\n overline: `font: ${typography.overline};`,\n caption: `font: ${typography.caption}; text-transform: uppercase;`,\n button1: `font: ${tokens.component.button.sizes.large.font};`,\n button2: `font: ${tokens.component.button.sizes.medium.font};`,\n button3: `font: ${tokens.component.button.sizes.small.font}; font-weight: ${tokens.component.button.sizes.small.fontWeight};`,\n label: `font: ${typography.label};`,\n }\n \n return styles[variant] || styles.body\n}\n\nconst getTextColor = (colorVariant: TypographyColor) => {\n const colorMap = {\n default: color.text.default,\n emphasis: color.text.default,\n subdued: color.text.muted,\n inverse: color.text.inverse,\n disabled: color.text.disabled,\n interactive: color.text.accent,\n error: color.text.danger,\n success: color.text.success,\n warning: color.text.warning,\n }\n \n return colorMap[colorVariant] || colorMap.default\n}\n\nconst getDefaultElement = (variant: TypographyVariant): React.ElementType => {\n const elementMap: Record<TypographyVariant, React.ElementType> = {\n display: 'h1',\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle: 'p',\n body: 'p',\n small: 'span',\n overline: 'span',\n caption: 'span',\n button1: 'span',\n button2: 'span',\n button3: 'span',\n label: 'span',\n }\n \n return elementMap[variant] || 'span'\n}\n\nconst StyledTypography = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledTypographyProps>`\n ${({ $variant }) => getTypographyStyles($variant)}\n color: ${({ $color }) => getTextColor($color)};\n margin: 0;\n`\n\n/**\n * Typography is an atomic component for rendering text with semantic meaning and consistent styling.\n * \n * Features:\n * - Semantic variants (h1-h6, body, subtitle, etc.)\n * - Color variants for different contexts\n * - Automatic semantic HTML element selection\n * - Manual element override support\n * - Direct semantic token usage (no component tokens needed)\n * - Full accessibility support\n * \n * @example\n * ```tsx\n * <Typography variant=\"h1\">Main Heading</Typography>\n * <Typography variant=\"body\" color=\"subdued\">Body text</Typography>\n * <Typography variant=\"caption\" as=\"figcaption\">Image caption</Typography>\n * ```\n */\nexport const Typography: React.FC<TypographyProps> = ({ \n variant = 'body', \n children, \n color = 'default',\n as,\n 'data-testid': dataTestId\n}) => {\n // $variant and $color are only used for styled-components prop filtering\n const defaultElement = getDefaultElement(variant)\n const elementType = as || defaultElement\n\n return (\n <StyledTypography \n as={elementType}\n $variant={variant}\n $color={color}\n data-testid={dataTestId}\n >\n {children}\n </StyledTypography>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Typography, type TypographyVariant, type TypographyColor } from '../Typography'\nimport tokens from '@/lib/cssTokens'\n\nexport type MoneyDisplayVariant = 'default' | 'positive' | 'negative' | 'neutral'\nexport type MoneyDisplaySize = 'small' | 'medium' | 'large' | 'xlarge'\nexport type MoneyDisplayWeight = 'regular' | 'medium' | 'bold'\nexport type MoneyDisplayAlign = 'left' | 'center' | 'right'\n\nexport interface MoneyDisplayProps {\n /** The monetary amount to display */\n amount: number\n /** Currency code (ISO 4217) */\n currency?: string\n /** Visual variant affecting color and style */\n variant?: MoneyDisplayVariant\n /** Show +/- sign prefix */\n showSign?: boolean\n /** Size of the amount display */\n size?: MoneyDisplaySize\n /** Font weight */\n weight?: MoneyDisplayWeight\n /** Locale for number formatting */\n locale?: string\n /** Align text */\n align?: MoneyDisplayAlign\n /** Data test id for testing */\n 'data-testid'?: string\n}\n\ninterface StyledWrapperProps {\n $align: MoneyDisplayAlign\n $weight: MoneyDisplayWeight\n}\n\nconst StyledWrapper = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledWrapperProps>`\n display: inline-flex;\n align-items: center;\n text-align: ${({ $align }) => $align};\n font-weight: ${({ $weight }) => tokens.semantic.fontWeight[$weight]};\n`\n\n// Map size to Typography variant\nconst sizeToTypographyVariant: Record<MoneyDisplaySize, TypographyVariant> = {\n small: 'caption',\n medium: 'body',\n large: 'h3',\n xlarge: 'h2'\n}\n\n// The minus sign, not a hyphen, so it reads and copies as minus (decision 0045)\nconst MINUS = '\\u2212'\n\nexport const MoneyDisplay: React.FC<MoneyDisplayProps> = ({\n amount,\n currency = 'AUD',\n variant = 'default',\n showSign = false,\n size = 'medium',\n weight = 'regular',\n locale = 'en-AU',\n align = 'left',\n 'data-testid': dataTestId\n}) => {\n // Format the number with Intl.NumberFormat\n const formatter = new Intl.NumberFormat(locale, {\n style: 'currency',\n currency: currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n \n const formattedAmount = formatter.format(Math.abs(amount))\n \n // A signed amount carries its sign as text, so the sign survives copying and is read aloud, and the\n // role colour repeats it (decision 0045). Negative amounts always show their sign.\n const isNegative = amount < 0 || variant === 'negative'\n const isPositive = !isNegative && ((showSign && amount > 0) || variant === 'positive')\n const sign = isNegative ? MINUS : isPositive ? '+' : ''\n\n const typographyVariant = sizeToTypographyVariant[size]\n const amountColor: TypographyColor =\n isNegative ? 'error' :\n isPositive ? 'success' :\n variant === 'neutral' ? 'subdued' :\n 'default'\n\n return (\n <StyledWrapper\n $align={align}\n $weight={weight}\n data-testid={dataTestId}\n >\n <Typography\n variant={typographyVariant}\n color={amountColor}\n as=\"span\"\n >\n {sign}{formattedAmount}\n </Typography>\n </StyledWrapper>\n )\n}\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\nimport { forcedColors, forcedColorsEdge, reducedMotion } from '../../../lib/styleUtils'\n\n// Destructure tokens\nconst { semantic } = tokens\nconst { color, motion, radius, component } = { ...semantic, component: tokens.component }\n\nexport interface ProgressBarProps {\n /** Progress value from 0 to 100 */\n value: number\n /** Orientation of the progress bar */\n variant?: 'horizontal' | 'vertical'\n /** Fill colour: `default` is the strongest neutral fill (`color.fill.emphasis`: near-black in light, near-white in dark); `success` and `error` use their status colours */\n color?: 'success' | 'error' | 'default'\n /** Height size for horizontal progress bar (default: md) */\n height?: 'sm' | 'md' | 'lg' | 'xl'\n /** Width size for vertical progress bar (default: md) */\n width?: 'sm' | 'md' | 'lg' | 'xl'\n /** Accessible name, e.g. \"Upload progress\". Provide this or aria-labelledby; falls back to \"Progress\" */\n 'aria-label'?: string\n /** ID of the visible element that names the progress bar */\n 'aria-labelledby'?: string\n /** Data attribute for testing */\n 'data-testid'?: string\n}\n\ninterface StyledProgressBarContainerProps {\n $variant: 'horizontal' | 'vertical'\n $height?: 'sm' | 'md' | 'lg' | 'xl'\n $width?: 'sm' | 'md' | 'lg' | 'xl'\n}\n\ninterface StyledProgressBarFillProps {\n $value: number\n $variant: 'horizontal' | 'vertical'\n $color: 'success' | 'error' | 'default'\n}\n\nconst ProgressBarContainer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledProgressBarContainerProps>`\n background-color: ${tokens.component.track.background};\n border-radius: ${radius.xs};\n overflow: hidden;\n\n /* Forced colours drop the track's fill, so the track gets an edge (decision 0038) */\n ${forcedColorsEdge}\n\n ${props => props.$variant === 'horizontal' && css`\n width: 100%;\n height: ${props.$height ? component.progressBar.sizes[props.$height].height : component.progressBar.sizes.md.height};\n `}\n\n ${props => props.$variant === 'vertical' && css`\n width: ${props.$width ? component.progressBar.sizes[props.$width].height : component.progressBar.sizes.md.height};\n height: 100%;\n `}\n`\n\nconst ProgressBarFill = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledProgressBarFillProps>`\n height: 100%;\n transition: width ${motion.duration.moderate} ${motion.easing.standard},\n height ${motion.duration.moderate} ${motion.easing.standard},\n background-color ${motion.duration.moderate} ${motion.easing.standard};\n\n ${reducedMotion} {\n transition: none;\n }\n\n /* The fill is the value, so it keeps a fill in forced colours, in the system selection colour (decision 0038) */\n ${forcedColors} {\n forced-color-adjust: none;\n background-color: Highlight;\n }\n\n ${props => {\n let backgroundColor\n switch (props.$color) {\n case 'success':\n backgroundColor = color.fill.success\n break\n case 'error':\n backgroundColor = color.fill.danger\n break\n case 'default':\n default:\n // Near-black, like Slider's fill (decision 0029)\n backgroundColor = color.fill.emphasis\n break\n }\n return css`background-color: ${backgroundColor};`\n }}\n\n ${props => props.$variant === 'horizontal' && css`\n width: ${Math.min(100, Math.max(0, props.$value))}%;\n `}\n\n ${props => props.$variant === 'vertical' && css`\n width: 100%;\n height: ${Math.min(100, Math.max(0, props.$value))}%;\n `}\n`\n\nexport const ProgressBar: React.FC<ProgressBarProps> = ({\n value,\n variant = 'horizontal',\n color = 'default',\n height,\n width,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'data-testid': dataTestId,\n}) => {\n // Blank values are no name at all, so they fall back like missing ones\n const label = ariaLabel?.trim() ? ariaLabel : undefined\n const labelledBy = ariaLabelledBy?.trim() ? ariaLabelledBy : undefined\n return (\n <ProgressBarContainer\n $variant={variant}\n $height={height}\n $width={width}\n data-testid={dataTestId}\n role=\"progressbar\"\n aria-label={label ?? (labelledBy ? undefined : 'Progress')}\n aria-labelledby={labelledBy}\n aria-valuenow={Math.min(100, Math.max(0, value))}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n <ProgressBarFill\n $value={value}\n $variant={variant}\n $color={color}\n />\n </ProgressBarContainer>\n )\n}\n\nexport default ProgressBar\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\n// Destructure tokens for cleaner access\nconst { separator: separatorTokens } = tokens.component\n// Margins come from the semantic separator spacing: no component spacing tokens (decision 0022)\nconst { space } = tokens.semantic\n\nexport interface DividerProps {\n /** Variant style of the divider */\n variant?: 'default' | 'strong' | 'minimal'\n /** Size variation affecting spacing */\n size?: 'small' | 'medium' | 'large' | 'xlarge'\n /** Orientation of the divider */\n orientation?: 'horizontal' | 'vertical'\n /** Data test id for testing */\n 'data-testid'?: string\n}\n\ninterface StyledDividerProps {\n $variant: DividerProps['variant']\n $size: DividerProps['size']\n $orientation: DividerProps['orientation']\n}\n\nconst StyledDivider = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledDividerProps>`\n border: none;\n \n /* Apply orientation */\n ${({ $orientation = 'horizontal' }) => {\n if ($orientation === 'vertical') {\n return `\n display: inline-block;\n height: auto;\n align-self: stretch;\n border-left: ${tokens.semantic.border.width.thin} solid;\n border-top: none;\n `\n }\n return `border-top: ${tokens.semantic.border.width.thin} solid;`\n }}\n \n /* Apply variant styles */\n ${({ $variant = 'default', $orientation = 'horizontal' }) => {\n const borderProperty = $orientation === 'vertical' ? 'border-left' : 'border-top'\n switch ($variant) {\n case 'strong':\n return `${borderProperty}: ${separatorTokens.variants.strong.border};`\n case 'minimal':\n return `${borderProperty}: ${separatorTokens.variants.minimal.border};`\n case 'default':\n default:\n return `${borderProperty}: ${separatorTokens.variants.default.border};`\n }\n }}\n \n /* Apply size styles (spacing) */\n ${({ $size = 'large', $variant = 'default', $orientation = 'horizontal' }) => {\n if ($variant === 'minimal' && $orientation === 'horizontal') {\n // Minimal variant always uses its predefined spacing for horizontal\n return `margin: ${space[600]} 0;`\n }\n \n if ($orientation === 'vertical') {\n // Vertical orientation uses horizontal margins (left/right)\n switch ($size) {\n case 'small':\n return `margin: 0 ${space[400]};`\n case 'medium':\n return `margin: 0 ${space[600]};`\n case 'xlarge':\n return `margin: 0 ${space[1200]};`\n case 'large':\n default:\n return `margin: 0 ${space[800]};`\n }\n }\n \n // Horizontal orientation uses vertical margins (top/bottom)\n switch ($size) {\n case 'small':\n return `margin: ${space[400]} 0;`\n case 'medium':\n return `margin: ${space[600]} 0;`\n case 'xlarge':\n return `margin: ${space[1200]} 0;`\n case 'large':\n default:\n return `margin: ${space[800]} 0;`\n }\n }}\n`\n\n/**\n * Divider is an atomic component that provides visual separation between content sections.\n * \n * Features:\n * - Multiple variants (default, strong, minimal)\n * - Size variations for different spacing needs\n * - Horizontal and vertical orientations\n * - Semantic token usage for consistent styling\n * - Full accessibility support\n * \n * @example\n * ```tsx\n * <Divider />\n * <Divider variant=\"strong\" size=\"xlarge\" />\n * <Divider variant=\"minimal\" />\n * <Divider orientation=\"vertical\" />\n * ```\n */\nexport const Divider: React.FC<DividerProps> = ({\n variant = 'default',\n size = 'large',\n orientation = 'horizontal',\n 'data-testid': dataTestId,\n}) => {\n return (\n <StyledDivider\n $variant={variant}\n $size={size}\n $orientation={orientation}\n data-testid={dataTestId}\n role=\"separator\"\n aria-orientation={orientation}\n />\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\nexport type StackDirection = 'column' | 'row'\nexport type StackAlign = 'center' | 'flex-start' | 'flex-end' | 'stretch' | 'baseline'\nexport type StackJustify = 'center' | 'flex-start' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly'\nexport type StackGap = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl'\n\nexport interface StackProps {\n children: React.ReactNode\n direction?: StackDirection\n alignItems?: StackAlign\n justifyContent?: StackJustify\n gap?: StackGap\n wrap?: boolean\n 'data-testid'?: string\n}\n\ninterface StyledStackProps {\n $direction: StackDirection\n $alignItems?: StackAlign\n $justifyContent?: StackJustify\n $gap: string\n $wrap: boolean\n}\n\nconst StyledStack = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})`\n display: flex;\n flex-direction: var(--stack-direction);\n align-items: var(--stack-align-items);\n justify-content: var(--stack-justify-content);\n gap: var(--stack-gap);\n flex-wrap: var(--stack-wrap);\n`\n\n// Each gap name maps to the space step that replaced its old spacing.layout token (decision 0031),\n// so every gap keeps its value\nconst GAP_SPACE: Record<StackGap, Exclude<keyof typeof tokens.semantic.space, 'inset'>> = {\n none: '0',\n xs: '100',\n sm: '200',\n md: '300',\n lg: '400',\n xl: '500',\n '2xl': '600',\n '3xl': '700',\n '4xl': '800',\n '5xl': '900',\n '6xl': '1000',\n}\n\n// Helper function to convert gap prop to CSS value\nconst getGapValue = (gap: StackGap): string => {\n const step = GAP_SPACE[gap]\n if (step) {\n return tokens.semantic.space[step]\n }\n\n // Fallback to medium spacing for an unknown gap (from untyped JavaScript)\n return tokens.semantic.space[300]\n}\n\nexport const Stack: React.FC<StackProps> = ({ \n children, \n direction = 'row', \n gap = 'md', \n alignItems, \n justifyContent,\n wrap = false,\n 'data-testid': dataTestId\n}) => {\n const gapValue = getGapValue(gap)\n \n // Create CSS custom properties object with proper typing\n const cssProps: React.CSSProperties = {\n '--stack-direction': direction,\n '--stack-align-items': alignItems || 'initial',\n '--stack-justify-content': justifyContent || 'initial',\n '--stack-gap': gapValue,\n '--stack-wrap': wrap ? 'wrap' : 'nowrap'\n } as React.CSSProperties\n \n return (\n <StyledStack \n style={cssProps}\n data-testid={dataTestId}\n >\n {children}\n </StyledStack>\n )\n}\n\nexport default Stack\n","// Shape indicators for the six coloured statuses (decision 0045): filled silhouettes on the\n// 24px grid. Each status icon draws its outline along the same path as a 2px line (decision 0058). Internal: they aren't public icons, so a\n// bare shape can't be shown without its label. The shape indicator (#264) and the small\n// StatusLabel and InlineAlert sizes render them at 12px or more, with a darker edge.\n\nexport type StatusShape = 'error' | 'serious' | 'warning' | 'success' | 'info' | 'inProgress'\n\nexport const statusShapes: Record<StatusShape, string> = {\n error: 'M22.5 12L17.25 21.0933L6.75 21.0933L1.5 12L6.75 2.9067L17.25 2.9067Z',\n serious: 'M12 2L22 12L12 22L2 12Z',\n warning: 'M12 2.5L22 20.5L2 20.5Z',\n success: 'M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2Z',\n info: 'M7 2H17A5 5 0 0 1 22 7V17A5 5 0 0 1 17 22H7A5 5 0 0 1 2 17V7A5 5 0 0 1 7 2Z',\n inProgress: 'M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2ZM12 4A8 8 0 1 0 12 20A8 8 0 1 0 12 4ZM12 6A6 6 0 0 1 12 18Z',\n}\n","import styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { statusShapes, type StatusShape as StatusShapeName } from '../../../lib/statusShapes'\n\n// The shape indicator: at least 12px (decision 0045), filled with the current text colour, which is\n// the label's role colour at 5.3:1 or more on its tint, so it needs no edge. Decorative: the text\n// beside it names the status. Internal to the status family (#264): not exported from the package.\nconst Mark = styled.svg`\n flex: none;\n width: ${tokens.semantic.size.icon.xs};\n height: ${tokens.semantic.size.icon.xs};\n fill: currentColor;\n`\n\nexport const StatusShape = ({ shape }: { shape: StatusShapeName }) => (\n <Mark viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\" data-shape={shape}>\n <path d={statusShapes[shape]} />\n </Mark>\n)\n","import React from 'react'\nimport styled, { keyframes } from 'styled-components'\nimport { Icon } from '../Icon/Icon'\nimport type { IconName } from '../../../types/icons'\nimport type { StatusShape as StatusShapeName } from '../../../lib/statusShapes'\nimport { StatusShape } from './StatusShape'\nimport { forcedColorsEdge, reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\nimport tokens from '@/lib/cssTokens'\n\n// Destructure tokens for cleaner access\nconst { status: statusColors } = tokens.component\nconst { space, radius } = tokens.semantic\nconst { transition, duration, easing } = tokens.semantic.motion\nconst { label: labelHeight } = tokens.semantic.size\nconst { label } = tokens.component.badge\n\n/**\n * Status type options for StatusLabel\n */\nexport type StatusType = \n | 'pending' \n | 'completed' \n | 'failed' \n | 'cancelled' \n | 'processing' \n | 'scheduled'\n\n/**\n * Size options for StatusLabel\n */\nexport type StatusSize = 'small' | 'medium'\n\n/**\n * Props for StatusLabel\n */\nexport interface StatusLabelProps {\n /**\n * The status type to display\n */\n status: StatusType\n\n /**\n * Optional custom label (defaults to status name)\n */\n label?: string\n\n /**\n * Size: small (20px) or medium (24px)\n * @default 'medium'\n */\n size?: StatusSize\n\n /**\n * Whether status changes should be announced to screen readers\n * @default true\n */\n liveRegion?: boolean\n\n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n\n /**\n * Accessible label override. Used as the status's name and announced instead of the visible\n * text and icon (#78).\n */\n 'aria-label'?: string\n}\n\ninterface StyledStatusLabelProps {\n $status: StatusType\n $size: StatusSize\n}\n\nconst scaleIn = keyframes`\n from {\n opacity: 0;\n transform: scale(0.8);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n`\n\nconst getStatusConfig = (status: StatusType) => {\n // Each status's icon and, for the coloured statuses, its shape indicator (decision 0045). The\n // neutral statuses have no shape: at the small size they're plain text.\n const configs: Record<StatusType, { color: string; bgColor: string; icon: IconName; shape?: StatusShapeName; label: string }> = {\n pending: {\n color: statusColors.pending.text,\n bgColor: statusColors.pending.background,\n icon: 'statusPending',\n label: 'Pending'\n },\n completed: {\n color: statusColors.completed.text,\n bgColor: statusColors.completed.background,\n icon: 'statusSuccess',\n shape: 'success',\n label: 'Completed'\n },\n failed: {\n color: statusColors.failed.text,\n bgColor: statusColors.failed.background,\n icon: 'statusError',\n shape: 'error',\n label: 'Failed'\n },\n cancelled: {\n color: statusColors.cancelled.text,\n bgColor: statusColors.cancelled.background,\n icon: 'statusCancelled',\n label: 'Cancelled'\n },\n processing: {\n color: statusColors.processing.text,\n bgColor: statusColors.processing.background,\n icon: 'statusInProgress',\n shape: 'inProgress',\n label: 'Processing'\n },\n scheduled: {\n color: statusColors.scheduled.text,\n bgColor: statusColors.scheduled.background,\n icon: 'statusScheduled',\n label: 'Scheduled'\n }\n }\n \n return configs[status]\n}\n\n// Size configuration\nconst sizeConfig = {\n small: {\n height: labelHeight.small,\n padding: `${space[100]} ${space[200]}`,\n font: label.typography.small,\n gap: space[100],\n iconSize: 'xs' as const\n },\n medium: {\n height: labelHeight.medium,\n padding: `${space[100]} ${space[200]}`,\n font: label.typography.medium,\n gap: space[100],\n iconSize: 'sm' as const\n }\n}\n\nconst StyledStatusLabel = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledStatusLabelProps>`\n box-sizing: border-box; /* the height includes padding, without relying on a global reset */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: ${radius.full};\n white-space: nowrap;\n user-select: none;\n animation: ${scaleIn} ${duration.moderate} ${easing.decelerate};\n transition: ${transition.feedback};\n\n /* Under reduced motion the label appears without scaling in, and colours change at once */\n ${reducedMotion} {\n animation: none;\n transition: none;\n }\n\n /* Forced colours drop the fill, so the label keeps its shape with an edge (decision 0038) */\n ${forcedColorsEdge}\n \n /* Size styles */\n ${({ $size }) => {\n const size = sizeConfig[$size]\n return `\n height: ${size.height};\n padding: ${size.padding};\n font: ${size.font};\n font-weight: ${label.fontWeight};\n gap: ${size.gap};\n `\n }}\n \n /* Status color styles */\n ${({ $status }) => {\n const config = getStatusConfig($status)\n return `\n background-color: ${config.bgColor};\n color: ${config.color};\n `\n }}\n`\n\nconst ScreenReaderOnly = styled.span`\n ${visuallyHidden}\n`\n\n// The visible content, hidden from assistive technology when an aria-label replaces it.\n// display: contents keeps the root's flex layout and gap.\nconst VisibleContent = styled.span`\n display: contents;\n`\n\n/**\n * StatusLabel's implementation. Internal: not exported from the package. It always shows the status\n * icon at the medium size, and at the small size the shape for coloured statuses (decisions 0018,\n * 0045).\n */\nexport const StatusLabelBase: React.FC<StatusLabelProps> = ({\n status,\n label,\n size = 'medium',\n liveRegion = true,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel\n}) => {\n const statusConfig = getStatusConfig(status)\n const sizeStyles = sizeConfig[size]\n const displayLabel = label || statusConfig.label\n // A blank aria-label is no label at all, so it falls back like a missing one\n const accessibleLabel = ariaLabel?.trim() ? ariaLabel : undefined\n\n return (\n <StyledStatusLabel\n $status={status}\n $size={size}\n role=\"status\"\n aria-label={accessibleLabel || `Status: ${displayLabel}`}\n // role=\"status\" is implicitly polite, so turning announcements off needs an explicit \"off\"\n aria-live={liveRegion ? 'polite' : 'off'}\n aria-atomic={liveRegion ? 'true' : undefined}\n data-testid={dataTestId}\n >\n {/* A live region announces its content, not its name, so a provided aria-label replaces the\n content for assistive technology as well (#78) */}\n <VisibleContent aria-hidden={accessibleLabel ? 'true' : undefined}>\n {/* A 12px outline icon is too small to read, so the small size shows the status's shape\n instead, in the label's colour (decision 0045); neutral statuses show text only */}\n {size === 'medium' && (\n <Icon\n name={statusConfig.icon}\n size={sizeStyles.iconSize}\n iconColor=\"inherit\"\n />\n )}\n {size === 'small' && statusConfig.shape && (\n <StatusShape shape={statusConfig.shape} />\n )}\n {displayLabel}\n <ScreenReaderOnly>\n {status} status\n </ScreenReaderOnly>\n </VisibleContent>\n {accessibleLabel && <ScreenReaderOnly>{accessibleLabel}</ScreenReaderOnly>}\n </StyledStatusLabel>\n )\n}\n","import React from 'react'\nimport { StatusLabelBase, type StatusLabelProps } from './StatusLabelBase'\n\nexport type { StatusLabelProps, StatusType, StatusSize } from './StatusLabelBase'\n\n/**\n * StatusLabel conveys the status of something, such as a transaction or task (decision 0018).\n *\n * Uses only the status colour tokens and always shows its text, so status is never conveyed by\n * colour alone (decision 0045). Medium shows the status icon. Small shows the status shape for\n * completed, failed and processing, and text only for the neutral pending, scheduled and\n * cancelled, so keep the label visible. Not interactive. Announces changes politely to screen\n * readers.\n *\n * @example\n * ```tsx\n * <StatusLabel status=\"completed\" />\n *\n * <StatusLabel status=\"pending\" label=\"Awaiting approval\" size=\"small\" />\n * ```\n */\nexport const StatusLabel: React.FC<StatusLabelProps> = (props) => <StatusLabelBase {...props} />\n\nStatusLabel.displayName = 'StatusLabel'\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic } = tokens\nconst { color, size } = semantic\nconst { label } = tokens.component.badge\nconst { space } = semantic\nconst { radius } = semantic\n\nexport interface TagProps {\n /**\n * Text content to display in the tag\n */\n children: React.ReactNode\n \n /**\n * Visual variant. Tag is neutral metadata: use `default`, or `emphasis` (the strongest neutral fill) to make a\n * tag stand out. For a status, use `StatusLabel` (decision 0029).\n * @default 'default'\n */\n variant?: 'default' | 'emphasis'\n \n /**\n * Whether to show a border\n * @default true\n */\n border?: boolean\n\n /**\n * Size: small (20px) for dense layouts, or medium (24px). Decision 0018 size scale.\n * @default 'medium'\n */\n size?: 'small' | 'medium'\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\ninterface StyledTagProps {\n $variant: TagProps['variant']\n $border: boolean\n $size: NonNullable<TagProps['size']>\n}\n\nconst StyledTag = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledTagProps>`\n box-sizing: border-box; /* the height includes padding and border, without relying on a global reset */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: ${radius.sm};\n user-select: none;\n white-space: nowrap;\n\n /* Size (decision 0018): small has no vertical padding so the text line fits inside 20px */\n height: ${({ $size }) => size.label[$size]};\n padding: ${({ $size }) => $size === 'small' ? `0 ${space[200]}` : `${space[100]} ${space[200]}`};\n font: ${label.typography.small};\n font-weight: ${label.fontWeight};\n \n /* Variant styles */\n background-color: ${({ $variant }) => {\n switch ($variant) {\n case 'emphasis':\n return color.fill.emphasis\n default:\n return color.fill.muted\n }\n }};\n \n color: ${({ $variant }) => {\n switch ($variant) {\n case 'emphasis':\n return color.text.inverse\n default:\n return color.text.default\n }\n }};\n \n border: ${({ $variant, $border }) => {\n if (!$border) return 'none'\n \n switch ($variant) {\n case 'emphasis':\n return `${semantic.border.width.thin} solid ${color.fill.emphasis}`\n default:\n return `${semantic.border.width.thin} solid ${color.border.default}`\n }\n }};\n`\n\n/**\n * Tag component for categorizing and labeling content\n * \n * A static, non-interactive label used to categorize elements or objects in the UI.\n * Tags help users quickly identify and understand content classification.\n */\nexport const Tag: React.FC<TagProps> = ({\n children,\n variant = 'default',\n border = true,\n size: tagSize = 'medium',\n 'data-testid': dataTestId,\n ...props\n}) => {\n return (\n <StyledTag\n $variant={variant}\n $border={border}\n $size={tagSize}\n data-testid={dataTestId}\n data-variant={variant}\n data-border={border}\n role=\"status\"\n aria-label={typeof children === 'string' ? `Tag: ${children}` : undefined}\n {...props}\n >\n {children}\n </StyledTag>\n )\n}\n","import { useEffect, useState, type RefObject } from 'react'\n// The exit timer needs the resolved duration, not its CSS variable (decision 0041)\n// eslint-disable-next-line no-restricted-imports\nimport tokenValues from '../styles/tokens.json'\n\n// How long an exiting element stays mounted: the duration of `exitAnimation` in styleUtils. A timer\n// needs the resolved value, not the CSS variable (decision 0041).\nexport const EXIT_DURATION_MS = parseInt(tokenValues.semantic.motion.duration.fast, 10)\n\n/**\n * Keeps an element mounted for `exitMs` after `isOpen` turns false, so its exit\n * animation can run before it unmounts (decision 0005).\n */\nexport function usePresence(isOpen: boolean, exitMs: number = EXIT_DURATION_MS) {\n const [isMounted, setIsMounted] = useState(isOpen)\n\n useEffect(() => {\n if (isOpen) {\n setIsMounted(true)\n return\n }\n const timer = setTimeout(() => setIsMounted(false), exitMs)\n return () => clearTimeout(timer)\n }, [isOpen, exitMs])\n\n return {\n isPresent: isOpen || isMounted,\n isExiting: !isOpen && isMounted,\n }\n}\n\n/**\n * Makes an element inert while `isInert` is true, so an exiting overlay's controls leave\n * the tab order and can't be activated. Set through the DOM because React 18 has no\n * `inert` prop.\n */\nexport function useInert(ref: RefObject<HTMLElement | null>, isInert: boolean) {\n useEffect(() => {\n const node = ref.current\n if (!node) return\n if (isInert) node.setAttribute('inert', '')\n else node.removeAttribute('inert')\n }, [ref, isInert])\n}\n","// Places a floating element (Tooltip, Menu) next to its anchor, without a positioning library\n// (P8). Pure geometry, so it can be tested without a browser: the caller measures both elements\n// and applies the result as `top` and `left` on a `position: fixed` element.\n\nexport type FloatingSide = 'top' | 'right' | 'bottom' | 'left'\nexport type FloatingAlign = 'start' | 'center' | 'end'\n\nexport interface FloatingRect {\n top: number\n left: number\n width: number\n height: number\n}\n\nexport interface FloatingOptions {\n /** The anchor's box, from getBoundingClientRect */\n anchor: FloatingRect\n /** The floating element's size */\n floating: { width: number; height: number }\n /** The side to place it on; it flips to the opposite side when that has more room */\n side: FloatingSide\n /** Where it lines up along the anchor's edge */\n align: FloatingAlign\n /** The gap between the anchor and the floating element, in px */\n offset: number\n /** The viewport's size */\n viewport: { width: number; height: number }\n /** The smallest distance kept from the viewport's edges, in px */\n margin: number\n}\n\nexport interface FloatingPosition {\n top: number\n left: number\n /** The side it ended up on, after any flip */\n side: FloatingSide\n}\n\nconst opposite: Record<FloatingSide, FloatingSide> = { top: 'bottom', bottom: 'top', left: 'right', right: 'left' }\n\n// The room between the anchor and the viewport edge on each side\nconst room = (side: FloatingSide, { anchor, viewport, margin }: FloatingOptions) => {\n switch (side) {\n case 'top': return anchor.top - margin\n case 'bottom': return viewport.height - (anchor.top + anchor.height) - margin\n case 'left': return anchor.left - margin\n case 'right': return viewport.width - (anchor.left + anchor.width) - margin\n }\n}\n\nconst clamp = (value: number, min: number, max: number) => Math.max(min, Math.min(value, max))\n\nexport function placeFloating(options: FloatingOptions): FloatingPosition {\n const { anchor, floating, align, offset, viewport, margin } = options\n const vertical = (s: FloatingSide) => s === 'top' || s === 'bottom'\n\n // Flip when the preferred side is too small and the opposite side has more room\n let side = options.side\n const needed = (vertical(side) ? floating.height : floating.width) + offset\n if (room(side, options) < needed && room(opposite[side], options) > room(side, options)) {\n side = opposite[side]\n }\n\n // Main axis: beside the anchor, `offset` away\n let top = 0\n let left = 0\n if (side === 'top') top = anchor.top - offset - floating.height\n if (side === 'bottom') top = anchor.top + anchor.height + offset\n if (side === 'left') left = anchor.left - offset - floating.width\n if (side === 'right') left = anchor.left + anchor.width + offset\n\n // Cross axis: aligned to the anchor's start, centre or end, then kept inside the viewport\n if (vertical(side)) {\n if (align === 'start') left = anchor.left\n if (align === 'center') left = anchor.left + (anchor.width - floating.width) / 2\n if (align === 'end') left = anchor.left + anchor.width - floating.width\n left = clamp(left, margin, viewport.width - floating.width - margin)\n } else {\n if (align === 'start') top = anchor.top\n if (align === 'center') top = anchor.top + (anchor.height - floating.height) / 2\n if (align === 'end') top = anchor.top + anchor.height - floating.height\n top = clamp(top, margin, viewport.height - floating.height - margin)\n }\n\n return { top: Math.round(top), left: Math.round(left), side }\n}\n\n/**\n * The element that actually has a box inside a wrapper: Tooltip and Menu wrap their trigger in a\n * `display: contents` span, and a trigger can be nested in more than one (a Tooltip inside a Menu's\n * trigger), so this steps down until it finds an element that lays out.\n */\nexport function laidOutElement(wrapper: Element | null): Element | null {\n let element = wrapper?.firstElementChild ?? null\n while (element && typeof getComputedStyle !== 'undefined' && getComputedStyle(element).display === 'contents') {\n element = element.firstElementChild\n }\n return element\n}\n","import { useEffect, useLayoutEffect, type RefObject } from 'react'\n// Placement needs resolved lengths, not CSS variables (decision 0041)\nimport tokenValues from '../styles/tokens.json'\nimport { laidOutElement, placeFloating, type FloatingAlign, type FloatingSide } from './floatingPosition'\n\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n\n// The Popover API puts a floating element in the top layer: above everything, Modal included,\n// never clipped by a scroll container, with no z-index (#326). It's in every current browser;\n// without it the element is still position: fixed, so it escapes overflow clipping.\nconst supportsPopover = () => typeof HTMLElement !== 'undefined' && 'showPopover' in HTMLElement.prototype\n\n/** The trigger's width in px, set on the floating element when `matchAnchorWidth` is on */\nexport const ANCHOR_WIDTH_VAR = '--co-floating-anchor-width'\n\nconst remToPx = (value: string) =>\n parseFloat(value) * (parseFloat(getComputedStyle(document.documentElement).fontSize) || 16)\n\ninterface FloatingLayerOptions {\n /** Whether the floating element is rendered */\n isPresent: boolean\n /** The floating element: `position: fixed`, placed with top and left */\n floatingRef: RefObject<HTMLElement | null>\n /** The `display: contents` wrapper around the trigger */\n anchorRef: RefObject<Element | null>\n side: FloatingSide\n align: FloatingAlign\n /**\n * Writes the trigger's width to `ANCHOR_WIDTH_VAR` on the floating element before each placement,\n * so its CSS can be at least as wide as the trigger\n */\n matchAnchorWidth?: boolean\n /**\n * Called when the trigger may have moved away from the floating element: the page or a container\n * scrolled (anything but the floating element itself), or the window resized\n */\n onDetach: () => void\n}\n\n/**\n * Shows a floating element (Tooltip, Menu) in the top layer beside its trigger, before the browser\n * paints, and places it again whenever its size changes. A gap of `space.100` separates it from the\n * trigger, and it keeps `space.200` from the viewport's edges.\n */\nexport function useFloatingLayer({\n isPresent,\n floatingRef,\n anchorRef,\n side,\n align,\n matchAnchorWidth = false,\n onDetach,\n}: FloatingLayerOptions) {\n useIsomorphicLayoutEffect(() => {\n const floating = floatingRef.current\n if (!isPresent || !floating) return\n if (supportsPopover() && !floating.matches(':popover-open')) {\n floating.setAttribute('popover', 'manual')\n floating.showPopover()\n }\n const place = () => {\n const trigger = laidOutElement(anchorRef.current)\n if (!trigger) return\n const anchor = trigger.getBoundingClientRect()\n // Before measuring, since it can widen the floating element\n if (matchAnchorWidth) floating.style.setProperty(ANCHOR_WIDTH_VAR, `${anchor.width}px`)\n else floating.style.removeProperty(ANCHOR_WIDTH_VAR)\n const { width, height } = floating.getBoundingClientRect()\n const position = placeFloating({\n anchor,\n floating: { width, height },\n side,\n align,\n offset: remToPx(tokenValues.semantic.space[100]),\n viewport: { width: window.innerWidth, height: window.innerHeight },\n margin: remToPx(tokenValues.semantic.space[200]),\n })\n floating.style.top = `${position.top}px`\n floating.style.left = `${position.left}px`\n floating.dataset.side = position.side\n }\n place()\n if (typeof ResizeObserver === 'undefined') return\n const observer = new ResizeObserver(place)\n observer.observe(floating)\n // Its width follows the trigger's, so a trigger that resizes while it's open places it again\n const trigger = matchAnchorWidth ? laidOutElement(anchorRef.current) : null\n if (trigger) observer.observe(trigger)\n return () => observer.disconnect()\n }, [isPresent, side, align, matchAnchorWidth, floatingRef, anchorRef])\n\n useEffect(() => {\n if (!isPresent) return\n const onScroll = (event: Event) => {\n if (event.target instanceof Node && floatingRef.current?.contains(event.target)) return\n onDetach()\n }\n window.addEventListener('scroll', onScroll, true)\n window.addEventListener('resize', onDetach)\n return () => {\n window.removeEventListener('scroll', onScroll, true)\n window.removeEventListener('resize', onDetach)\n }\n }, [isPresent, floatingRef, onDetach])\n}\n","/**\n * Whether focus arrived from the keyboard rather than a click or tap, so a component can show\n * something on keyboard focus only (a Tooltip, SidebarNav's highlight). Browsers without\n * `:focus-visible` treat every focus as keyboard focus.\n */\nexport function isKeyboardFocus(target: EventTarget | null): boolean {\n if (!(target instanceof Element)) return false\n try {\n return target.matches(':focus-visible')\n } catch {\n return true\n }\n}\n","import React, { useCallback, useEffect, useId, useRef, useState } from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n// Timers need resolved durations, not CSS variables (decision 0041)\n// eslint-disable-next-line no-restricted-imports\nimport tokenValues from '../../../styles/tokens.json'\nimport { exitAnimation, forcedColorsEdge, visuallyHidden } from '../../../lib/styleUtils'\nimport { usePresence } from '../../../lib/usePresence'\nimport { type FloatingAlign, type FloatingSide } from '../../../lib/floatingPosition'\nimport { useFloatingLayer } from '../../../lib/useFloatingLayer'\nimport { isKeyboardFocus } from '../../../lib/keyboardFocus'\n\nconst { semantic } = tokens\nconst { motion } = tokenValues.semantic\n\n// How long the pointer rests before the tooltip opens (#326)\nconst HINT_DELAY_MS = parseInt(motion.delay.hint, 10)\n// Moving to another trigger within this window opens its tooltip at once, so a rail feels immediate\nconst SKIP_DELAY_MS = parseInt(motion.duration.slow, 10)\n// The grace period for the pointer to cross from the trigger onto the tooltip (WCAG 1.4.13)\nconst CLOSE_GRACE_MS = parseInt(motion.duration.fast, 10)\n\n// Shared by every Tooltip: only one is open at a time, and the next one opens at once while one\n// is open or within the skip-delay window after it closed\nlet lastClosedAt = 0\nlet active: { owner: object; close: () => void } | null = null\n\nexport type TooltipSide = FloatingSide\nexport type TooltipAlign = FloatingAlign\n\nexport interface TooltipProps {\n /** The tooltip's text. In `label` mode it repeats the trigger's existing accessible name. */\n text: string\n /**\n * `label` (default) shows the name the trigger already has, such as an IconButton's\n * `aria-label`, and is hidden from assistive technology so the name isn't announced twice.\n * `description` adds non-essential help, linked to the trigger with `aria-describedby`. Hover\n * text can't be reached on touch screens, so anything a user needs must be visible text.\n * @default 'label'\n */\n kind?: 'label' | 'description'\n /**\n * The side of the trigger it opens on. It flips to the opposite side when there's no room.\n * @default 'top'\n */\n side?: TooltipSide\n /**\n * Where it lines up along the trigger's edge.\n * @default 'center'\n */\n align?: TooltipAlign\n /**\n * Turns the tooltip off while keeping the trigger where it is, such as when the label it repeats\n * is visible. Changing it never remounts the trigger.\n * @default false\n */\n disabled?: boolean\n /** One focusable element: the trigger */\n children: React.ReactElement\n /** Test identifier for the tooltip bubble */\n 'data-testid'?: string\n}\n\nconst fadeIn = keyframes`\n from { opacity: 0; }\n`\n\n// A fade, so it needs no reduced-motion fallback (0015). Entrances decelerate (0037).\nconst Bubble = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $exiting: boolean }>`\n /* Reset the popover defaults: it's placed with top and left */\n position: fixed;\n inset: auto;\n top: 0;\n left: 0;\n margin: 0;\n overflow: visible;\n box-sizing: border-box;\n max-width: ${semantic.size[7500]};\n padding: ${semantic.space.inset.xs} ${semantic.space.inset.sm};\n border: none;\n border-radius: ${semantic.radius.sm};\n background-color: ${semantic.color.fill.inverse};\n color: ${semantic.color.text.inverse};\n font: ${semantic.typography.small};\n overflow-wrap: break-word;\n pointer-events: auto;\n animation: ${fadeIn} ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate}\n ${({ $exiting }) => ($exiting ? exitAnimation : css``)};\n\n ${forcedColorsEdge}\n`\n\nconst Description = styled.span`\n ${visuallyHidden}\n`\n\n// The trigger's wrapper takes no box of its own, so the trigger lays out as if unwrapped\nconst Anchor = styled.span`\n display: contents;\n`\n\n/**\n * A short label or hint that appears beside a control on hover or keyboard focus (#326).\n *\n * Opens after `motion.delay.hint` of hover, at once on keyboard focus, and at once when the pointer\n * moves on from another tooltip. Stays open while the pointer is over it; closes on pointer leave,\n * blur, scroll and Escape. Doesn't open on touch.\n */\nexport const Tooltip = ({\n text,\n kind = 'label',\n side = 'top',\n align = 'center',\n disabled = false,\n children,\n 'data-testid': dataTestId,\n}: TooltipProps) => {\n const descriptionId = useId()\n const anchorRef = useRef<HTMLSpanElement>(null)\n const bubbleRef = useRef<HTMLDivElement>(null)\n const openTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n const closeTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n const [owner] = useState(() => ({}))\n // Set by a press, so the focus that follows a click or tap doesn't reopen the tooltip\n const pressed = useRef(false)\n const [isOpen, setIsOpen] = useState(false)\n // Turned off while showing (its label became visible): close it on the same render\n const [wasDisabled, setWasDisabled] = useState(disabled)\n if (wasDisabled !== disabled) {\n setWasDisabled(disabled)\n if (disabled) setIsOpen(false)\n }\n const { isPresent, isExiting } = usePresence(isOpen)\n\n const clearTimers = () => {\n clearTimeout(openTimer.current)\n clearTimeout(closeTimer.current)\n }\n\n const close = useCallback(() => {\n clearTimers()\n if (active?.owner === owner) {\n active = null\n lastClosedAt = Date.now()\n }\n setIsOpen(false)\n }, [owner])\n\n const open = useCallback(() => {\n clearTimers()\n if (active && active.owner !== owner) active.close()\n active = { owner, close }\n setIsOpen(true)\n }, [owner, close])\n\n const scheduleOpen = () => {\n clearTimeout(closeTimer.current)\n if (isOpen || disabled) return\n // Moving straight from one trigger to the next (another tooltip still open) or just after one\n // closed skips the delay, so a rail feels immediate\n if (active || Date.now() - lastClosedAt < SKIP_DELAY_MS) return open()\n clearTimeout(openTimer.current)\n openTimer.current = setTimeout(open, HINT_DELAY_MS)\n }\n\n const scheduleClose = () => {\n clearTimeout(openTimer.current)\n clearTimeout(closeTimer.current)\n closeTimer.current = setTimeout(close, CLOSE_GRACE_MS)\n }\n\n useEffect(\n () => () => {\n clearTimers()\n if (active?.owner === owner) active = null\n },\n [owner]\n )\n\n // While open: Escape closes it without moving focus, and before anything else hears the key\n // (an Escape meant for the tooltip mustn't also close a Modal)\n useEffect(() => {\n if (!isOpen) return\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return\n event.stopPropagation()\n close()\n }\n window.addEventListener('keydown', onKeyDown, true)\n return () => window.removeEventListener('keydown', onKeyDown, true)\n }, [isOpen, close])\n\n // In the top layer beside the trigger; scrolling or resizing closes it, since the trigger moves\n useFloatingLayer({ isPresent, floatingRef: bubbleRef, anchorRef, side, align, onDetach: close })\n\n const child = React.Children.only(children) as React.ReactElement<{ 'aria-describedby'?: string }>\n const describedBy = [child.props['aria-describedby'], kind === 'description' ? descriptionId : undefined]\n .filter(Boolean)\n .join(' ') || undefined\n\n return (\n <Anchor\n ref={anchorRef}\n onPointerEnter={(event) => event.pointerType !== 'touch' && scheduleOpen()}\n onPointerLeave={(event) => event.pointerType !== 'touch' && scheduleClose()}\n onFocus={(event) => {\n // Keyboard focus opens it at once; a click's or tap's focus doesn't\n if (pressed.current) {\n pressed.current = false\n return\n }\n if (!disabled && isKeyboardFocus(event.target)) open()\n }}\n onBlur={() => {\n // A press on an already focused trigger has no focus to skip; don't carry it over\n pressed.current = false\n close()\n }}\n // Pressing the trigger acts on it, so the hint has done its job\n onPointerDown={() => {\n pressed.current = true\n close()\n }}\n >\n {React.cloneElement(child, { 'aria-describedby': describedBy })}\n {kind === 'description' && <Description id={descriptionId}>{text}</Description>}\n {isPresent && (\n // Hidden from assistive technology: a label repeats the trigger's name, and a\n // description reaches it through aria-describedby on the always-present text above\n <Bubble ref={bubbleRef} aria-hidden=\"true\" $exiting={isExiting} data-testid={dataTestId}>\n {text}\n </Bubble>\n )}\n </Anchor>\n )\n}\n\nTooltip.displayName = 'Tooltip'\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\nimport { Icon } from '../Icon'\n\nconst { semantic } = tokens\nconst { color, typography, size } = semantic\n\nexport type AILabelKind = 'suggested' | 'removal'\nexport type AILabelSize = 'small' | 'medium'\n\nexport interface AILabelProps {\n /**\n * What the agent proposes for the item: a change or addition (\"Suggested\"), or its removal\n * (\"Will be removed\"). The wording is fixed so it reads the same in every product (decision 0046).\n * @default 'suggested'\n */\n kind?: AILabelKind\n /**\n * Size on the label scale (decision 0018): small (20px) for dense lists, medium (24px) elsewhere.\n * @default 'medium'\n */\n size?: AILabelSize\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\nconst labels: Record<AILabelKind, string> = {\n suggested: 'Suggested',\n removal: 'Will be removed',\n}\n\nconst sizeConfig = {\n small: { font: typography.caption, gap: semantic.space[100], icon: 'xs' as const },\n medium: { font: typography.small, gap: semantic.space[200], icon: 'sm' as const },\n}\n\nconst StyledAILabel = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $size: AILabelSize }>`\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n min-height: ${({ $size }) => size.label[$size]};\n gap: ${({ $size }) => sizeConfig[$size].gap};\n font: ${({ $size }) => sizeConfig[$size].font};\n color: ${color.text.ai};\n white-space: nowrap;\n`\n\nconst StyledIcon = styled.span`\n display: inline-flex;\n color: ${color.icon.ai};\n`\n\n/**\n * AILabel marks content an agent has proposed but the user hasn't accepted (decision 0046): the AI\n * icon and a fixed label in the AI colour, never colour alone (decision 0043). It isn't a status\n * (use StatusLabel) or a category (use CategoryLabel), and it doesn't label AI features in general.\n *\n * @example\n * ```tsx\n * <AILabel /> // \"Suggested\"\n * <AILabel kind=\"removal\" /> // \"Will be removed\"\n * ```\n */\nexport const AILabel: React.FC<AILabelProps> = ({ kind = 'suggested', size: labelSize = 'medium', 'data-testid': dataTestId }) => (\n <StyledAILabel $size={labelSize} data-testid={dataTestId}>\n {/* Decorative: the label says it (decision 0028) */}\n <StyledIcon aria-hidden=\"true\">\n <Icon name=\"ai\" size={sizeConfig[labelSize].icon} iconColor=\"inherit\" />\n </StyledIcon>\n {labels[kind]}\n </StyledAILabel>\n)\n\nAILabel.displayName = 'AILabel'\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Stack } from '../../atoms/Stack'\nimport { Box } from '../../atoms/Box'\nimport { Icon, type IconName } from '../../atoms/Icon'\nimport { Typography } from '../../atoms/Typography'\nimport { MoneyDisplay } from '../../atoms/MoneyDisplay'\nimport { Button } from '../../atoms/Button'\nimport { Avatar } from '../../atoms/Avatar'\nimport tokens from '../../../lib/cssTokens'\n\n// Destructure tokens for cleaner access\nconst { semantic } = tokens\nconst { space } = semantic\n\nexport type AccountType = 'checking' | 'savings' | 'credit' | 'investment' | 'loan'\nexport type TrendDirection = 'up' | 'down' | 'neutral'\n\nexport interface AccountCardAction {\n label: string\n onClick: () => void\n icon?: IconName\n variant?: 'primary' | 'secondary' | 'naked'\n}\n\nexport interface AccountCardProps {\n /** Type of account */\n accountType: AccountType\n \n /** Display name of the account */\n accountName: string\n \n /** Account balance */\n balance: number\n \n /** Optional account number (last 4 digits) */\n accountNumber?: string\n \n /** Trend direction for balance change */\n trend?: TrendDirection\n \n /** Trend value (e.g., percentage or amount) */\n trendValue?: string\n \n /** Primary action button */\n action?: AccountCardAction\n \n /** Secondary action button */\n secondaryAction?: AccountCardAction\n \n /** Currency code */\n currency?: string\n \n /** Whether the card should be interactive (clickable) */\n onClick?: () => void\n \n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\nconst StyledBalanceSection = styled.div`\n margin-bottom: ${space[400]};\n`\n\nconst StyledTrendSection = styled.div<{ $color: string }>`\n display: flex;\n align-items: center;\n gap: ${space[100]};\n color: ${({ $color }) => $color};\n font: ${semantic.typography.small};\n`\n\nconst StyledActions = styled.div`\n display: flex;\n gap: ${space[200]};\n margin-top: auto;\n`\n\nconst StyledStackWrapper = styled.div`\n height: 100%;\n`\n\nconst StyledHeaderWrapper = styled.div`\n min-height: ${tokens.component.accountCard.header.minHeight};\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: ${space[0]};\n\n & > span {\n margin-top: calc(-1 * ${space[100]});\n }\n`\n\n// Map trend direction to icon and color\nconst trendToIcon: Record<TrendDirection, IconName> = {\n up: 'arrowUp',\n down: 'arrowDown',\n neutral: 'arrowRight'\n}\n\n// A trend is a differential indicator (decision 0045): the arrow and the signed value carry the\n// direction, and the role colour repeats it. Category colours carry no meaning, so they aren't used.\nconst trendToColor: Record<TrendDirection, string> = {\n up: semantic.color.text.success,\n down: semantic.color.text.danger,\n neutral: semantic.color.text.muted\n}\n\n/**\n * AccountCard component\n * \n * Displays account information in a card format with account type icon,\n * name, balance, optional trend indicator, and action buttons. Minimum\n * 300x200px with elevation and hover effects.\n * \n * Composes: Stack, Box, Avatar, Typography, MoneyDisplay, Button\n */\nexport const AccountCard: React.FC<AccountCardProps> = ({\n accountName,\n balance,\n accountNumber,\n trend,\n trendValue,\n action,\n secondaryAction,\n currency = 'AUD',\n onClick,\n 'data-testid': dataTestId\n}) => {\n const isClickable = !!onClick\n \n // Get trend icon and color\n const trendIcon = trend ? trendToIcon[trend] : undefined\n const trendColor = trend ? trendToColor[trend] : undefined\n \n const handleClick = () => {\n if (isClickable && onClick) {\n onClick()\n }\n }\n \n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (isClickable && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n onClick?.()\n }\n }\n \n return (\n <Box\n minWidth={tokens.component.accountCard.minWidth}\n p=\"lg\"\n bg=\"surface.raised\"\n border=\"default\"\n borderRadius=\"xl\"\n transition={`box-shadow ${semantic.motion.duration.moderate} ${semantic.motion.easing.decelerate}`}\n cursor={isClickable ? 'pointer' : 'default'}\n hoverShadow={isClickable ? 'floating' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n tabIndex={isClickable ? 0 : undefined}\n role={isClickable ? 'button' : 'article'}\n aria-label={isClickable ? `${accountName} account, balance ${balance}` : undefined}\n data-testid={dataTestId}\n >\n <StyledStackWrapper>\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Stack direction=\"row\" gap=\"md\">\n <Avatar\n name={accountName}\n size=\"lg\"\n data-testid={dataTestId ? `${dataTestId}-avatar` : undefined}\n />\n\n <Stack direction=\"column\" justifyContent=\"space-between\" alignItems=\"stretch\" gap=\"md\">\n <Stack direction=\"row\" gap=\"md\" alignItems=\"center\">\n <StyledHeaderWrapper>\n <Typography variant=\"h4\">\n {accountName}\n </Typography>\n {accountNumber && (\n <Typography variant=\"small\" color=\"subdued\">\n •••• {accountNumber}\n </Typography>\n )}\n </StyledHeaderWrapper>\n </Stack>\n \n <StyledBalanceSection>\n <Stack direction=\"row\" gap=\"sm\">\n <MoneyDisplay\n amount={balance}\n currency={currency}\n size=\"medium\"\n data-testid={dataTestId ? `${dataTestId}-balance` : undefined}\n />\n <Typography color=\"subdued\">\n Available\n </Typography>\n {trend && trendValue && (\n // A group rather than an image, so screen readers read the value as well as the direction\n <StyledTrendSection role=\"group\" aria-label={`Trend ${trend}`} $color={trendColor!}>\n <Icon name={trendIcon!} size=\"sm\" iconColor=\"inherit\" />\n <span>{trendValue}</span>\n </StyledTrendSection>\n )}\n </Stack>\n </StyledBalanceSection>\n </Stack>\n </Stack>\n \n {(action || secondaryAction) && (\n <Stack direction=\"row\" gap=\"sm\" justifyContent=\"flex-end\">\n {secondaryAction && (\n <Button\n onClick={(e) => {\n e.stopPropagation()\n secondaryAction.onClick()\n }}\n variant={secondaryAction.variant || 'secondary'}\n iconName={secondaryAction.icon}\n data-testid={dataTestId ? `${dataTestId}-secondary-action` : undefined}\n size=\"small\"\n >\n {secondaryAction.label}\n </Button>\n )}\n {action && (\n <Button\n onClick={(e) => {\n e.stopPropagation()\n action.onClick()\n }}\n variant={action.variant || 'primary'}\n iconName={action.icon}\n data-testid={dataTestId ? `${dataTestId}-action` : undefined}\n size=\"small\"\n >\n {action.label}\n </Button>\n )}\n </Stack>\n )}\n </Stack>\n </StyledStackWrapper>\n </Box>\n )\n}\n","import { createContext } from 'react'\n\nexport type ListSpacing = 'compact' | 'comfortable'\n\n/**\n * The spacing a List gives its items (#77). A ListItem without its own `spacing` uses it; outside\n * a List it's `comfortable`. Internal: not exported from the package.\n */\nexport const ListSpacingContext = createContext<ListSpacing>('comfortable')\n","import React, { useContext } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { Icon } from '../../atoms/Icon'\nimport { Typography } from '../../atoms/Typography'\nimport { interactiveRow, reducedMotion, rowRadius } from '../../../lib/styleUtils'\nimport { ListSpacingContext, type ListSpacing } from './ListContext'\n\nconst { semantic } = tokens\nconst { duration, easing } = semantic.motion\n\nexport interface ListItemProps {\n /**\n * Main text/content\n */\n primary: React.ReactNode\n \n /**\n * Secondary text (smaller, subdued color)\n */\n secondary?: React.ReactNode\n \n /**\n * Badge/chip component on the right\n */\n badge?: React.ReactNode\n \n /**\n * Left icon or avatar component\n */\n icon?: React.ReactNode\n \n /**\n * Can be expanded to show children content\n * @default false\n */\n expandable?: boolean\n \n /**\n * Expansion state (controlled)\n * @default false\n */\n expanded?: boolean\n \n /**\n * Called when expansion is toggled\n */\n onToggle?: () => void\n \n /**\n * Enable hover/click interactive states\n * @default false\n */\n interactive?: boolean\n \n /**\n * Click handler for interactive items\n */\n onClick?: () => void\n \n /**\n * Disabled state\n * @default false\n */\n disabled?: boolean\n \n /**\n * Selected/active state\n * @default false\n */\n selected?: boolean\n \n /**\n * Destructive/danger state (e.g., delete actions)\n * Displays text and icon in error color\n * @default false\n */\n destructive?: boolean\n \n /**\n * Density of this item. Defaults to the parent List's `spacing`, or `comfortable` outside a\n * List; set it to override the List for this item (#77).\n * @deprecated Set density on a region with `data-co-density` instead: rows follow it (P9,\n * decision 0051). `spacing` still sets the padding, but not the height, until it's removed in 4.0.\n */\n spacing?: ListSpacing\n \n /**\n * Expanded content (shown when expanded=true)\n */\n children?: React.ReactNode\n \n /**\n * Additional CSS class name\n */\n className?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n \n /**\n * Custom ARIA role (e.g., 'option' for combobox)\n * @default 'listitem'\n */\n role?: string\n \n /**\n * ARIA selected state (for role=\"option\")\n */\n 'aria-selected'?: boolean\n \n /**\n * Custom ID for ARIA references\n */\n id?: string\n \n /**\n * Custom tabIndex for focus management\n */\n tabIndex?: number\n \n /**\n * Keyboard event handler\n */\n onKeyDown?: (e: React.KeyboardEvent) => void\n}\n\nconst StyledListItem = styled.li.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $interactive: boolean\n $disabled: boolean\n $selected: boolean\n $destructive: boolean\n $spacing: 'compact' | 'comfortable'\n}>`\n display: flex;\n flex-direction: column;\n min-height: ${semantic.size.row.md};\n position: relative;\n \n /* Disable user selection for interactive items */\n ${({ $interactive }) => $interactive && 'user-select: none;'}\n \n /* Disabled state */\n ${({ $disabled }) => $disabled && `\n opacity: ${semantic.opacity.disabled};\n cursor: not-allowed;\n pointer-events: none;\n `}\n \n /* Destructive state - apply error color to text */\n ${({ $destructive, $disabled }) => $destructive && !$disabled && `\n color: ${semantic.color.text.danger};\n `}\n`\n\nconst StyledItemContent = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $interactive: boolean\n $disabled: boolean\n $selected: boolean\n $destructive: boolean\n $spacing: 'compact' | 'comfortable'\n}>`\n display: flex;\n align-items: flex-start;\n gap: ${semantic.space[300]};\n /* Insets, so the row's padding follows density with its height (decision 0051) */\n padding: ${({ $spacing }) =>\n $spacing === 'compact'\n ? `${semantic.space.inset.sm} ${semantic.space.inset.md}`\n : `${semantic.space.inset.md} ${semantic.space.inset.lg}`};\n border-radius: ${rowRadius};\n transition: background-color ${duration.fast} ${easing.decelerate}, color ${duration.fast} ${easing.decelerate};\n cursor: ${({ $interactive, $disabled }) => {\n if ($disabled) return 'not-allowed'\n if ($interactive) return 'pointer'\n return 'default'\n }};\n \n /* The shared row states (decision 0030). Only interactive, enabled rows respond to hover and\n press; the primary text is Typography, so the row colours it through a selector */\n ${({ $interactive, $disabled, $selected }) =>\n interactiveRow({\n selected: $selected,\n disabled: $disabled || !$interactive,\n textSelector: `${StyledTextContent} > :first-child`,\n })}\n \n /* Focus visible */\n &:focus-visible {\n outline: ${semantic.border.focus};\n outline-offset: ${semantic.border.focusOffset};\n }\n`\n\nconst StyledIconContainer = styled.div`\n display: flex;\n align-items: center;\n flex-shrink: 0;\n width: ${semantic.size.icon.lg};\n height: ${semantic.size.icon.lg};\n`\n\nconst StyledTextContent = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: ${semantic.space[100]};\n min-width: 0; /* Allow text truncation */\n`\n\nconst StyledRightContent = styled.div`\n display: flex;\n align-items: center;\n gap: ${semantic.space[200]};\n flex-shrink: 0;\n margin-left: auto;\n`\n\nconst StyledChevronIcon = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $expanded: boolean\n}>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${semantic.size.icon.lg};\n height: ${semantic.size.icon.lg};\n color: ${semantic.color.icon.muted};\n transition: transform ${duration.fast} ${easing.decelerate};\n transform: rotate(${({ $expanded }) => ($expanded ? '180deg' : '0deg')});\n pointer-events: none;\n\n ${reducedMotion} {\n transition: none;\n }\n`\n\nconst StyledExpandedContent = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $spacing: 'compact' | 'comfortable'\n $expanded: boolean\n}>`\n overflow: hidden;\n /* Padding collapses with the height, and visibility hides the content from\n keyboard and screen readers once the collapse finishes. */\n transition: max-height ${duration.moderate} ${easing.decelerate},\n padding ${duration.moderate} ${easing.decelerate},\n margin ${duration.moderate} ${easing.decelerate},\n opacity ${duration.moderate} ${easing.decelerate},\n visibility ${duration.moderate} ${easing.decelerate};\n max-height: ${({ $expanded }) => ($expanded ? '1000px' : '0')};\n opacity: ${({ $expanded }) => ($expanded ? '1' : '0')};\n visibility: ${({ $expanded }) => ($expanded ? 'visible' : 'hidden')};\n\n ${reducedMotion} {\n transition: opacity ${duration.moderate} ${easing.decelerate},\n visibility ${duration.moderate} ${easing.decelerate};\n }\n \n ${({ $expanded, $spacing }) => $expanded && `\n padding: ${\n $spacing === 'compact'\n ? `${semantic.space[200]} ${semantic.space[300]} ${semantic.space[200]} ${tokens.component.listItem.expandedIndent.compact}`\n : `${semantic.space[200]} ${semantic.space[400]} ${semantic.space[300]} ${tokens.component.listItem.expandedIndent.comfortable}`\n };\n background-color: ${semantic.surface.raised};\n border-radius: ${rowRadius};\n /* The row's own insets, so the panel lines up with the row in every density (0051) */\n margin: 0 ${\n $spacing === 'compact'\n ? semantic.space.inset.md\n : semantic.space.inset.lg\n } ${\n $spacing === 'compact'\n ? semantic.space.inset.sm\n : semantic.space.inset.md\n };\n `}\n`\n\nexport const ListItem = ({\n primary,\n secondary,\n badge,\n icon,\n expandable = false,\n expanded = false,\n onToggle,\n interactive = false,\n onClick,\n disabled = false,\n selected = false,\n destructive = false,\n spacing: spacingProp,\n children,\n className,\n 'data-testid': dataTestId,\n role: customRole,\n 'aria-selected': ariaSelected,\n id,\n tabIndex: customTabIndex,\n onKeyDown: customOnKeyDown,\n ...props\n}: ListItemProps) => {\n const listSpacing = useContext(ListSpacingContext)\n const spacing = spacingProp ?? listSpacing\n const isInteractive = interactive || expandable || customRole === 'option'\n const contentRole = customRole === 'option' ? undefined : (isInteractive ? 'button' : undefined)\n const ariaExpanded = expandable ? expanded : undefined\n const ariaDisabled = disabled ? true : undefined\n const ariaCurrent = selected ? 'true' : undefined\n \n const handleClick = () => {\n if (disabled) return\n \n if (expandable && onToggle) {\n onToggle()\n } else if (onClick) {\n onClick()\n }\n }\n \n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (customOnKeyDown) {\n customOnKeyDown(event)\n return\n }\n \n if (disabled) return\n \n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n handleClick()\n }\n }\n \n return (\n // The List's spacing is for its own items: reset it for this item's content, so components\n // built on ListItem (ActionSheet, even through its portal) and expanded content keep their own\n // density. A nested List provides its own spacing (#77)\n <ListSpacingContext.Provider value=\"comfortable\">\n <StyledListItem\n $interactive={isInteractive}\n $disabled={disabled}\n $selected={selected}\n $destructive={destructive}\n $spacing={spacing}\n className={className}\n data-testid={dataTestId}\n role={customRole || 'listitem'}\n id={id}\n aria-selected={ariaSelected}\n {...props}\n >\n <StyledItemContent\n $interactive={isInteractive}\n $disabled={disabled}\n $selected={selected}\n $destructive={destructive}\n $spacing={spacing}\n role={contentRole}\n aria-expanded={ariaExpanded}\n aria-disabled={ariaDisabled}\n aria-current={ariaCurrent}\n tabIndex={customTabIndex !== undefined ? customTabIndex : (isInteractive && !disabled ? 0 : undefined)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {icon && (\n <StyledIconContainer aria-hidden=\"true\">\n {icon}\n </StyledIconContainer>\n )}\n \n <StyledTextContent>\n <Typography variant=\"body\" color={destructive ? 'error' : 'default'}>\n {primary}\n </Typography>\n {secondary && (\n <Typography variant=\"small\" color=\"subdued\">\n {secondary}\n </Typography>\n )}\n </StyledTextContent>\n \n <StyledRightContent>\n {badge}\n {expandable && (\n <StyledChevronIcon $expanded={expanded} aria-hidden=\"true\">\n <Icon name=\"caretDown\" size=\"sm\" />\n </StyledChevronIcon>\n )}\n </StyledRightContent>\n </StyledItemContent>\n \n {expandable && children && (\n <StyledExpandedContent\n $spacing={spacing}\n $expanded={expanded}\n aria-hidden={!expanded}\n >\n {children}\n </StyledExpandedContent>\n )}\n </StyledListItem>\n </ListSpacingContext.Provider>\n )\n}\n\nListItem.displayName = 'ListItem'\n","import React, { \n useEffect, \n useRef, \n MouseEvent\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport styled, { keyframes } from 'styled-components'\nimport { Divider } from '../../atoms/Divider/Divider'\nimport { Icon } from '../../atoms/Icon/Icon'\nimport { type IconName } from '../../../types/icons'\nimport { Stack } from '../../atoms/Stack/Stack'\nimport { Typography } from '../../atoms/Typography/Typography'\nimport { ListItem } from '../List/ListItem'\nimport tokens from '@/lib/cssTokens'\nimport { exitAnimation, reducedMotion } from '../../../lib/styleUtils'\nimport { useInert, usePresence } from '../../../lib/usePresence'\n\nconst { \n semantic: { \n color, \n border, \n space, \n motion,\n elevation\n }\n} = tokens\n\n/**\n * Action item for the action sheet\n */\nexport interface Action {\n /**\n * Unique identifier\n */\n id: string\n \n /**\n * Display label\n */\n label: string\n \n /**\n * Optional icon\n */\n icon?: IconName\n \n /**\n * Whether this is a destructive action (shown in red)\n * @default false\n */\n destructive?: boolean\n \n /**\n * Whether this action is disabled\n * @default false\n */\n disabled?: boolean\n \n /**\n * Callback when action is selected\n */\n onSelect: () => void\n}\n\n/**\n * Props for the ActionSheet component\n */\nexport interface ActionSheetProps {\n /**\n * Whether the action sheet is open\n */\n isOpen: boolean\n \n /**\n * Callback when the action sheet should close\n */\n onClose: () => void\n \n /**\n * Title of the action sheet\n */\n title?: string\n \n /**\n * Optional description\n */\n description?: string\n \n /**\n * Array of actions\n */\n actions: Action[]\n \n /**\n * Whether to close on overlay click\n * @default true\n */\n closeOnOverlayClick?: boolean\n \n /**\n * Whether to close on Escape key\n * @default true\n */\n closeOnEscape?: boolean\n \n /**\n * Show close button in header\n * @default true\n */\n showCloseButton?: boolean\n \n /**\n * Test identifier\n */\n 'data-testid'?: string\n}\n\nconst slideUp = keyframes`\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n`\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`\n\nconst StyledOverlay = styled.div<{ $isExiting: boolean }>`\n position: fixed;\n inset: 0;\n background-color: ${tokens.semantic.surface.scrim};\n z-index: ${tokens.semantic.layer.modal};\n animation: ${fadeIn} ${motion.duration.moderate} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};\n`\n\nconst StyledActionSheet = styled.div<{ $isExiting: boolean }>`\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: ${tokens.semantic.surface.overlay};\n border-top-left-radius: ${tokens.component.overlay.borderRadius};\n border-top-right-radius: ${tokens.component.overlay.borderRadius};\n box-shadow: ${elevation.overlay};\n max-height: 90vh;\n overflow-y: auto;\n z-index: ${tokens.semantic.layer.modal};\n animation: ${slideUp} ${motion.duration.slow} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};\n\n ${reducedMotion} {\n animation: ${fadeIn} ${motion.duration.slow} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};\n }\n\n`\n\nconst StyledHeader = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: ${space[400]} ${space[400]} ${space[300]};\n border-bottom: ${border.default};\n`\n\nconst StyledHeaderContent = styled.div`\n flex: 1;\n`\n\nconst StyledCloseButton = styled.button`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${space[200]};\n border: none;\n background: transparent;\n color: ${color.icon.muted};\n cursor: pointer;\n border-radius: ${tokens.semantic.radius.md};\n transition: ${motion.transition.feedback};\n margin-left: ${space[200]};\n \n &:hover {\n color: ${color.icon.default};\n background-color: ${color.fill.muted};\n }\n \n &:focus-visible {\n outline: ${border.focus};\n outline-offset: ${border.focusOffset};\n }\n`\n\nconst StyledActionsList = styled.ul`\n padding: ${space[200]} ${space[300]};\n margin: 0;\n list-style: none;\n`\n\n/**\n * ActionSheet component for bottom sheet modals\n * \n * Displays a modal action sheet that slides up from the bottom,\n * providing a list of actions for the user to choose from.\n * Includes focus trapping, keyboard navigation, and accessibility features.\n * \n * @example\n * ```tsx\n * const [isOpen, setIsOpen] = useState(false)\n * \n * <ActionSheet\n * isOpen={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Choose an action\"\n * actions={[\n * {\n * id: 'edit',\n * label: 'Edit',\n * icon: 'edit',\n * onSelect: () => console.log('Edit')\n * },\n * {\n * id: 'delete',\n * label: 'Delete',\n * icon: 'trash',\n * destructive: true,\n * onSelect: () => console.log('Delete')\n * }\n * ]}\n * />\n * ```\n */\nexport const ActionSheet = ({\n isOpen,\n onClose,\n title,\n description,\n actions,\n closeOnOverlayClick = true,\n closeOnEscape = true,\n showCloseButton = true,\n 'data-testid': dataTestId\n}: ActionSheetProps) => {\n const sheetRef = useRef<HTMLDivElement>(null)\n const previousActiveElement = useRef<HTMLElement | null>(null)\n const { isPresent, isExiting } = usePresence(isOpen)\n useInert(sheetRef, isExiting)\n \n // Store the element that had focus when sheet opened\n useEffect(() => {\n if (isOpen) {\n previousActiveElement.current = document.activeElement as HTMLElement\n }\n }, [isOpen])\n \n // Focus management and escape key handling\n useEffect(() => {\n if (!isOpen) return\n \n const handleKeyDown = (e: globalThis.KeyboardEvent) => {\n if (e.key === 'Escape' && closeOnEscape) {\n e.preventDefault()\n onClose()\n }\n \n // Focus trap\n if (e.key === 'Tab' && sheetRef.current) {\n const focusableElements = sheetRef.current.querySelectorAll<HTMLElement>(\n 'button:not(:disabled), [href], input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex=\"-1\"])'\n )\n \n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n \n if (e.shiftKey && document.activeElement === firstElement) {\n e.preventDefault()\n lastElement?.focus()\n } else if (!e.shiftKey && document.activeElement === lastElement) {\n e.preventDefault()\n firstElement?.focus()\n }\n }\n }\n \n document.addEventListener('keydown', handleKeyDown)\n \n // Focus first focusable element (button or element with role=\"button\")\n const frame = requestAnimationFrame(() => {\n const firstFocusable = sheetRef.current?.querySelector<HTMLElement>(\n 'button:not(:disabled), [role=\"button\"][tabindex]:not([aria-disabled=\"true\"])'\n )\n firstFocusable?.focus()\n })\n \n // Prevent body scroll\n const originalOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n \n return () => {\n // A quick close cancels the pending focus, so it can't pull focus back into the exiting sheet\n cancelAnimationFrame(frame)\n document.removeEventListener('keydown', handleKeyDown)\n document.body.style.overflow = originalOverflow\n \n // Return focus to previous element\n if (previousActiveElement.current) {\n previousActiveElement.current.focus()\n }\n }\n }, [isOpen, onClose, closeOnEscape])\n \n const handleOverlayClick = (e: MouseEvent<HTMLDivElement>) => {\n // While exiting, the backdrop still catches clicks but doesn't close again\n if (!isExiting && closeOnOverlayClick && e.target === e.currentTarget) {\n onClose()\n }\n }\n \n const handleActionClick = (action: Action) => {\n if (!action.disabled) {\n action.onSelect()\n onClose()\n }\n }\n \n // Stays mounted while the exit fade runs, hidden from assistive technology\n if (!isPresent) return null\n \n // Find if there are any destructive actions to add divider\n const destructiveIndex = actions.findIndex(a => a.destructive)\n const hasDestructive = destructiveIndex >= 0\n \n return createPortal(\n <>\n <StyledOverlay onClick={handleOverlayClick} $isExiting={isExiting} />\n <StyledActionSheet\n ref={sheetRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden={isExiting || undefined}\n $isExiting={isExiting}\n aria-labelledby={title ? 'action-sheet-title' : undefined}\n aria-describedby={description ? 'action-sheet-description' : undefined}\n data-testid={dataTestId}\n >\n {(title || description || showCloseButton) && (\n <StyledHeader>\n <StyledHeaderContent>\n <Stack direction=\"column\" gap={description && title ? 'xs' : 'none'}>\n {title && (\n <div id=\"action-sheet-title\">\n <Typography variant=\"h3\">\n {title}\n </Typography>\n </div>\n )}\n {description && (\n <div id=\"action-sheet-description\">\n <Typography variant=\"body\" color=\"subdued\">\n {description}\n </Typography>\n </div>\n )}\n </Stack>\n </StyledHeaderContent>\n {showCloseButton && (\n <StyledCloseButton\n type=\"button\"\n onClick={onClose}\n aria-label=\"Close\"\n >\n <Icon name=\"close\" size=\"sm\" iconColor=\"subdued\" />\n </StyledCloseButton>\n )}\n </StyledHeader>\n )}\n \n <StyledActionsList>\n {actions.map((action, index) => (\n <React.Fragment key={action.id}>\n {hasDestructive && index === destructiveIndex && index > 0 && (\n <Divider size=\"small\" />\n )}\n <ListItem\n primary={action.label}\n icon={action.icon && (\n <Icon\n name={action.icon}\n size=\"md\"\n iconColor={\n action.disabled\n ? 'disabled'\n : action.destructive\n ? 'error'\n : 'default'\n }\n />\n )}\n interactive\n onClick={() => handleActionClick(action)}\n disabled={action.disabled}\n destructive={action.destructive}\n // Deprecated prop (0051), kept for this padding until 4.0 removes it\n spacing=\"compact\"\n />\n </React.Fragment>\n ))}\n </StyledActionsList>\n </StyledActionSheet>\n </>,\n document.body\n )\n}\n","export type AgentInputSubmitSource = 'text' | 'voice-final'\n\nexport type AgentInputVoiceErrorCode =\n | 'not-supported'\n | 'not-allowed'\n | 'no-speech'\n | 'audio-capture'\n | 'aborted'\n | 'unknown'\n\nexport interface AgentInputVoiceError {\n code: AgentInputVoiceErrorCode\n message: string\n}\n\nexport interface SpeechRecognitionAlternativeLike {\n transcript: string\n confidence: number\n}\n\nexport interface SpeechRecognitionResultLike {\n isFinal: boolean\n length: number\n [index: number]: SpeechRecognitionAlternativeLike\n}\n\nexport interface SpeechRecognitionResultListLike {\n length: number\n [index: number]: SpeechRecognitionResultLike\n}\n\nexport interface SpeechRecognitionEventLike {\n resultIndex: number\n results: SpeechRecognitionResultListLike\n}\n\nexport interface SpeechRecognitionErrorEventLike {\n error?: string\n message?: string\n}\n\nexport interface SpeechRecognitionLike {\n lang: string\n interimResults: boolean\n continuous: boolean\n onresult: ((event: SpeechRecognitionEventLike) => void) | null\n onerror: ((event: SpeechRecognitionErrorEventLike) => void) | null\n onend: (() => void) | null\n start: () => void\n stop: () => void\n abort: () => void\n}\n\nexport type SpeechRecognitionConstructorLike = new () => SpeechRecognitionLike\n\ntype BrowserWindowWithSpeech = Window & {\n SpeechRecognition?: SpeechRecognitionConstructorLike\n webkitSpeechRecognition?: SpeechRecognitionConstructorLike\n}\n\nexport function detectSpeechRecognitionConstructor(\n targetWindow?: Window\n): SpeechRecognitionConstructorLike | null {\n if (!targetWindow) return null\n\n const candidateWindow = targetWindow as BrowserWindowWithSpeech\n if (candidateWindow.SpeechRecognition) {\n return candidateWindow.SpeechRecognition\n }\n\n if (candidateWindow.webkitSpeechRecognition) {\n return candidateWindow.webkitSpeechRecognition\n }\n\n return null\n}\n\nexport function normalizeTranscript(input: string): string {\n return input.replace(/\\s+/g, ' ').trim()\n}\n\n/** Typed text: like a transcript, but line breaks are kept (spaces around them are dropped). */\nexport function normalizeMessage(input: string): string {\n return input\n .replace(/[^\\S\\n]+/g, ' ')\n .replace(/ ?\\n ?/g, '\\n')\n .trim()\n}\n\nexport function mapSpeechErrorCode(error?: string): AgentInputVoiceErrorCode {\n switch (error) {\n case 'not-allowed':\n case 'service-not-allowed':\n return 'not-allowed'\n case 'no-speech':\n return 'no-speech'\n case 'audio-capture':\n return 'audio-capture'\n case 'aborted':\n return 'aborted'\n default:\n return 'unknown'\n }\n}\n\nexport function defaultVoiceErrorMessage(code: AgentInputVoiceErrorCode): string {\n switch (code) {\n case 'not-supported':\n return 'Voice input is not supported in this browser. Use Chrome or Edge.'\n case 'not-allowed':\n return 'Microphone permission denied. Allow access and try again.'\n case 'no-speech':\n return 'No speech detected. Try again.'\n case 'audio-capture':\n return 'No microphone device detected. Check your microphone and try again.'\n case 'aborted':\n return 'Voice input was stopped.'\n default:\n return 'Voice input failed. Try again.'\n }\n}\n","export type AgentInputMachineState =\n | 'idle'\n | 'typing'\n | 'listening'\n | 'processingFinalTranscript'\n | 'submitting'\n | 'error'\n | 'disabled'\n\nexport type AgentInputMachineEvent =\n | { type: 'INPUT_CHANGE'; hasText: boolean }\n | { type: 'MIC_START' }\n | { type: 'MIC_STOP'; hasText: boolean }\n | { type: 'VOICE_INTERIM' }\n | { type: 'VOICE_FINAL' }\n | { type: 'VOICE_ERROR' }\n | { type: 'TIMEOUT_NO_SPEECH' }\n | { type: 'SUBMIT' }\n | { type: 'SUBMIT_SUCCESS'; hasText?: boolean }\n | { type: 'SUBMIT_ERROR' }\n | { type: 'RESET_ERROR'; hasText: boolean }\n\nconst textDrivenState = (hasText: boolean): AgentInputMachineState => (hasText ? 'typing' : 'idle')\n\nexport function agentInputStateTransition(\n currentState: AgentInputMachineState,\n event: AgentInputMachineEvent\n): AgentInputMachineState {\n if (currentState === 'disabled') {\n return 'disabled'\n }\n\n switch (event.type) {\n case 'INPUT_CHANGE':\n if (currentState === 'listening' || currentState === 'processingFinalTranscript' || currentState === 'submitting') {\n return currentState\n }\n return textDrivenState(event.hasText)\n\n case 'MIC_START':\n if (currentState === 'idle' || currentState === 'typing') {\n return 'listening'\n }\n return currentState\n\n case 'VOICE_INTERIM':\n if (currentState === 'listening') {\n return 'listening'\n }\n return currentState\n\n case 'VOICE_FINAL':\n if (currentState === 'listening') {\n return 'processingFinalTranscript'\n }\n return currentState\n\n case 'MIC_STOP':\n if (currentState === 'listening' || currentState === 'processingFinalTranscript') {\n return textDrivenState(event.hasText)\n }\n return currentState\n\n case 'SUBMIT':\n return 'submitting'\n\n case 'SUBMIT_SUCCESS':\n return 'idle'\n\n case 'SUBMIT_ERROR':\n return 'error'\n\n case 'VOICE_ERROR':\n case 'TIMEOUT_NO_SPEECH':\n return 'error'\n\n case 'RESET_ERROR':\n if (currentState === 'error') {\n return textDrivenState(event.hasText)\n }\n return currentState\n\n default:\n return currentState\n }\n}\n","import {\n ChangeEvent,\n ForwardedRef,\n KeyboardEvent,\n ReactNode,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useLayoutEffect,\n useEffect,\n useMemo,\n useRef,\n useState,\n useId,\n} from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport { Button } from '../../atoms/Button'\nimport { SuggestionChip } from '../../atoms/Chip'\nimport { IconButton } from '../../atoms/IconButton'\nimport { Typography } from '../../atoms/Typography'\nimport { reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\nimport { EXIT_DURATION_MS, useInert, usePresence } from '../../../lib/usePresence'\nimport tokens from '@/lib/cssTokens'\nimport {\n AgentInputSubmitSource,\n AgentInputVoiceError,\n AgentInputVoiceErrorCode,\n SpeechRecognitionLike,\n defaultVoiceErrorMessage,\n detectSpeechRecognitionConstructor,\n mapSpeechErrorCode,\n normalizeMessage,\n normalizeTranscript,\n} from './agentInputSpeech'\nimport { AgentInputMachineState, agentInputStateTransition } from './agentInputStateMachine'\n\nconst { semantic, component } = tokens\n\nconst DEFAULT_LISTENING_MESSAGE = 'Listening… speak now'\nconst DEFAULT_PROCESSING_MESSAGE = 'Finishing voice input…'\n// The counter appears from this share of maxLength\nconst COUNTER_THRESHOLD = 0.8\n\n// Layout effects warn during server rendering in React 18\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n\ninterface SubmitPayload {\n text: string\n source: AgentInputSubmitSource\n timestamp: string\n}\n\nexport interface AgentInputProps {\n value?: string\n defaultValue?: string\n onChange?: (value: string) => void\n\n /**\n * Called on Enter, Send, or a final voice transcript. When it resolves, the field clears if it\n * still holds the submitted text (a follow-up typed meanwhile is kept). When it rejects, the text stays.\n */\n onSubmit: (payload: SubmitPayload) => void | Promise<void>\n /** While submitting, turns Send into Stop and lets Escape stop. */\n onStop?: () => void\n\n /**\n * The review bar above the field, for an agent's proposal or an applied change (decision 0046).\n * Omit it when there's nothing to review or undo.\n */\n review?: AgentInputReview\n /**\n * Prompt starters or follow-ups, shown above the field while it's empty and no proposal is open.\n * At most three are shown. Picking one fills the field and focuses it; it never sends.\n */\n suggestions?: string[]\n /** Called with a suggestion's text when it's picked, after it fills the field */\n onSuggestionSelect?: (text: string) => void\n\n placeholder?: string\n /**\n * Soft character limit for the submitted text. Typing past it is allowed, but Send is disabled and\n * the counter and status line show the message is too long. A counter appears from 80% of the limit.\n */\n maxLength?: number\n disabled?: boolean\n isSubmitting?: boolean\n\n /**\n * Web Speech API voice capture, with a mic control in the field, where the browser supports it.\n * Off by default from 3.0 (#266): a product turns it on when it handles voice.\n * @default false\n */\n enableVoice?: boolean\n autoSubmitOnVoiceFinal?: boolean\n voiceLanguage?: string\n noSpeechTimeoutMs?: number\n\n onVoiceStart?: () => void\n onVoiceStop?: () => void\n onVoiceInterim?: (text: string) => void\n onVoiceFinal?: (text: string) => void\n onVoiceError?: (error: AgentInputVoiceError) => void\n\n /** Hint shown in the status line while idle or typing. Empty by default. */\n helperText?: string\n /** Overrides the status line in every non-error state. */\n statusMessage?: string\n /** Shown in the status line, styled and announced as an error, whenever it is set. */\n errorMessage?: string\n label?: string\n /**\n * Sticks the input to the bottom of its scroll container, on the sticky layer, over a band of page\n * background with room for the phone's home indicator. Render it as the last child of the\n * scrolling content.\n */\n docked?: boolean\n 'data-testid'?: string\n}\n\n/**\n * An agent's proposal waiting for review, or a change already applied (decision 0046). In the\n * proposal state the bar shows the summary with Accept and Discard; once applied, \"Changes applied\"\n * with Undo.\n */\nexport type AgentInputReview =\n | {\n state: 'proposal'\n /**\n * Identifies this proposal. A new id while a proposal is open announces it as a replacement\n * (\"Proposal updated.\"), even when the summary is the same (decision 0047).\n */\n id: string\n /** What the agent proposes. Say what changed, for example \"3 changes: Tuesday is now fish\" */\n summary: string\n onAccept: () => void\n onDiscard: () => void\n }\n | {\n state: 'applied'\n onUndo: () => void\n }\n\nexport interface AgentInputFocusOptions {\n /** Where to put the caret. Omit to keep the browser's default. */\n cursor?: 'start' | 'end' | 'all'\n}\n\n/** Imperative handle, for products that focus or clear the field from their own controls. */\nexport interface AgentInputHandle {\n focus: (options?: AgentInputFocusOptions) => void\n clear: () => void\n}\n\nconst rotateRing = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $docked: boolean }>`\n display: flex;\n flex-direction: column;\n gap: ${semantic.space[200]};\n width: 100%;\n\n ${({ $docked }) =>\n $docked &&\n css`\n position: sticky;\n bottom: 0;\n z-index: ${semantic.layer.sticky};\n /* The band hides content scrolling past the field and status line (decisions 0006, 0031) */\n background-color: ${semantic.surface.base};\n padding-top: ${semantic.space[300]};\n /* Clears the home indicator; zero unless the page sets viewport-fit=cover */\n padding-bottom: env(safe-area-inset-bottom, 0px);\n `}\n`\n\nconst ControlsRow = styled.div`\n width: 100%;\n`\n\nconst InputShell = styled.div`\n display: flex;\n /* Actions sit beside the last line as the field grows */\n align-items: flex-end;\n gap: ${semantic.space[200]};\n width: 100%;\n padding: ${semantic.space[100]} ${semantic.space[200]} ${semantic.space[100]} ${semantic.space.inset.lg};\n background-color: ${component.input.default.backgroundColor};\n border: ${component.input.default.borderWidth} solid ${component.input.default.borderColor};\n border-radius: ${semantic.radius['3xl']};\n box-shadow: ${semantic.elevation.raised};\n transition: border-color ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}, outline ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard};\n\n &:focus-within {\n border-color: ${component.input.focus.borderColor};\n outline: ${component.input.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n }\n\n &[data-disabled='true'] {\n background-color: ${component.input.disabled.backgroundColor};\n border-color: ${component.input.disabled.borderColor};\n }\n`\n\n// One row is a control-height field; it grows with its content to six rows, then scrolls.\n// The height is set from scrollHeight in resizeField; 1lh is the body line height.\nconst Input = styled.textarea`\n display: block;\n flex: 1;\n min-width: 0;\n box-sizing: border-box;\n height: ${semantic.size.control.lg};\n min-height: ${semantic.size.control.lg};\n max-height: calc(5lh + ${semantic.size.control.lg});\n margin: 0;\n padding: calc((${semantic.size.control.lg} - 1lh) / 2) 0;\n resize: none;\n overflow-y: hidden;\n border: none;\n background: transparent;\n font: ${semantic.typography.body};\n color: ${semantic.color.text.default};\n outline: none;\n\n &::placeholder {\n color: ${component.input.placeholder.textColor};\n /* Firefox fades placeholders to 0.54 by default, which would undo the 4.5:1 contrast */\n opacity: 1;\n }\n\n &:disabled {\n color: ${semantic.color.text.disabled};\n cursor: not-allowed;\n }\n`\n\nconst InputActions = styled.div`\n display: inline-flex;\n align-items: center;\n gap: ${semantic.space[200]};\n /* Centres the buttons on a one-row field, and keeps them level with the last line as it grows */\n padding-bottom: calc((${semantic.size.control.lg} - ${semantic.size.control.md}) / 2);\n`\n\nconst CircularActionIconButton = styled(IconButton)`\n border-radius: ${semantic.radius.full};\n`\n\nconst InputWrapper = styled.div`\n flex: 1;\n min-width: 0;\n`\n\nconst MicButtonWrapper = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isListening: boolean; $reducedMotion: boolean }>`\n position: relative;\n display: inline-flex;\n border-radius: ${semantic.radius.full};\n\n & > button {\n position: relative;\n z-index: 1;\n }\n`\n\n// Masks read only alpha, so the opaque stop is a mask value, not a colour (decision 0010).\n// eslint-disable-next-line no-restricted-syntax\nconst ringMask = css`radial-gradient(farthest-side, transparent calc(100% - var(--ring-thickness)), #000 calc(100% - var(--ring-thickness)))`\n\nconst MicListeningRing = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $reducedMotion: boolean }>`\n --ring-thickness: ${semantic.border.width.thick};\n position: absolute;\n inset: calc(-1 * ${semantic.space[100]} - ${semantic.border.focusOffset});\n border-radius: ${semantic.radius.full};\n pointer-events: none;\n z-index: 0;\n background: conic-gradient(\n from 0deg,\n ${semantic.color.fill['accent-muted']} 0deg,\n ${semantic.color.fill.accent} 110deg,\n ${semantic.color.fill['accent-hover']} 210deg,\n ${semantic.color.fill.accent} 300deg,\n ${semantic.color.fill['accent-muted']} 360deg\n );\n mask: ${ringMask};\n -webkit-mask: ${ringMask};\n\n ${({ $reducedMotion }) =>\n !$reducedMotion &&\n css`\n animation: ${rotateRing} 1300ms linear infinite;\n `}\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n`\n\n// Maximum suggestions shown (decision 0046, #280)\nconst MAX_SUGGESTIONS = 3\n\nconst regionEnter = keyframes`\n from {\n opacity: 0;\n transform: translateY(${semantic.motion.distance.sm});\n }\n`\n\nconst regionFadeIn = keyframes`\n from {\n opacity: 0;\n }\n`\n\n// Leaving content fades, then its space closes, as with Alert's dismiss (decision 0015). A grid\n// row from 1fr to 0fr collapses to the content's own height without measuring it.\nconst regionFadeThenCollapse = keyframes`\n 0%, 50% {\n grid-template-rows: 1fr;\n }\n 0% {\n opacity: 1;\n }\n 50%, 100% {\n opacity: 0;\n }\n 100% {\n grid-template-rows: 0fr;\n }\n`\n\nconst regionFadeOut = keyframes`\n to {\n opacity: 0;\n }\n`\n\n// One part of the region above the field: the review bar or the suggestions\nconst RegionItem = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $exiting: boolean; $reducedExit: boolean }>`\n display: grid;\n grid-template-rows: 1fr;\n animation: ${regionEnter} ${semantic.motion.duration.moderate} ${semantic.motion.easing.decelerate};\n\n ${reducedMotion} {\n animation-name: ${regionFadeIn};\n }\n\n ${({ $exiting, $reducedExit }) =>\n $exiting &&\n css`\n pointer-events: none;\n animation: ${$reducedExit\n ? css`${regionFadeOut} ${semantic.motion.duration.fast} ${semantic.motion.easing.accelerate} forwards`\n : css`${regionFadeThenCollapse} calc(2 * ${semantic.motion.duration.fast}) ${semantic.motion.easing.accelerate} forwards`};\n `}\n`\n\n// Clips while the row collapses. Its bottom padding is the space to the next part, so it closes too.\nconst RegionItemContent = styled.div`\n min-height: 0;\n overflow: hidden;\n padding-bottom: ${semantic.space[200]};\n padding-left: ${semantic.space[500]};\n`\n\n// The summary first, then the actions, left-aligned after it; they wrap below on narrow screens (0021)\nconst ReviewBar = styled.div`\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n column-gap: ${semantic.space[300]};\n row-gap: ${semantic.space[200]};\n`\n\nconst ReviewActions = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: ${semantic.space[200]};\n`\n\nconst SuggestionList = styled.ul`\n display: flex;\n flex-wrap: wrap;\n gap: ${semantic.space[200]};\n margin: 0;\n padding: 0;\n list-style: none;\n\n & > li {\n max-width: 100%;\n }\n`\n\nconst StatusRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${semantic.space[300]};\n min-height: ${semantic.space[600]};\n`\n\nconst StatusText = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isError: boolean }>`\n padding-left: ${semantic.space[500]};\n`\n\nconst StatusAnnouncement = styled.div``\n\nconst StatusEnd = styled.div`\n display: inline-flex;\n align-items: center;\n gap: ${semantic.space[300]};\n`\n\nconst VisuallyHidden = styled.span`\n ${visuallyHidden}\n`\n\nconst MeterContainer = styled.div`\n display: inline-flex;\n align-items: flex-end;\n gap: ${semantic.space[100]};\n height: ${semantic.space[400]};\n`\n\nconst MeterBar = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $height: number }>`\n width: ${semantic.space[100]};\n border-radius: ${semantic.radius.xs};\n background-color: ${semantic.color.fill.accent};\n height: ${({ $height }) => `${$height * 100}%`};\n transition: height ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate};\n`\n\nconst VisuallyHiddenLabel = styled.label`\n ${visuallyHidden}\n`\n\nfunction getInitialState(hasText: boolean): AgentInputMachineState {\n return hasText ? 'typing' : 'idle'\n}\n\nfunction createMeterBars(level: number): number[] {\n const clampedLevel = Math.max(0, Math.min(level, 1))\n return [\n 0.25 + clampedLevel * 0.75,\n 0.2 + clampedLevel * 0.6,\n 0.3 + clampedLevel * 0.7,\n 0.2 + clampedLevel * 0.5,\n ]\n}\n\n// Declared separately so the react-hooks lint rules analyse it (they skip functions inline in forwardRef)\n// Development builds warn about props that break the pattern. Bundlers replace process.env.NODE_ENV\n// with a literal; without a bundler, a browser has no process, so reading it throws.\nfunction readIsProduction(): boolean {\n try {\n return process.env.NODE_ENV === 'production'\n } catch {\n return false\n }\n}\nconst isProduction = readIsProduction()\n\n// A part of the region above the field. It stays mounted while it fades out and its space closes.\nfunction RegionPart({ show, reducedExit, children }: { show: boolean; reducedExit: boolean; children: ReactNode }) {\n const { isPresent, isExiting } = usePresence(show, reducedExit ? EXIT_DURATION_MS : EXIT_DURATION_MS * 2)\n const ref = useRef<HTMLDivElement>(null)\n // Leaving controls drop out of the tab order and can't be activated\n useInert(ref, isExiting)\n\n if (!isPresent) return null\n\n return (\n <RegionItem ref={ref} $exiting={isExiting} $reducedExit={reducedExit} aria-hidden={isExiting || undefined}>\n <RegionItemContent>{children}</RegionItemContent>\n </RegionItem>\n )\n}\n\nfunction AgentInputWithRef({\n value,\n defaultValue = '',\n onChange,\n onSubmit,\n onStop,\n review,\n suggestions,\n onSuggestionSelect,\n placeholder = 'Ask a question',\n maxLength,\n disabled = false,\n isSubmitting,\n enableVoice = false,\n autoSubmitOnVoiceFinal = true,\n voiceLanguage = 'en-AU',\n noSpeechTimeoutMs = 8000,\n onVoiceStart,\n onVoiceStop,\n onVoiceInterim,\n onVoiceFinal,\n onVoiceError,\n helperText = '',\n statusMessage,\n errorMessage,\n label = 'Agent input',\n docked = false,\n 'data-testid': dataTestId,\n}: AgentInputProps, ref: ForwardedRef<AgentInputHandle>) {\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = useState(defaultValue)\n const [machineState, setMachineState] = useState<AgentInputMachineState>(\n getInitialState(normalizeTranscript(value ?? defaultValue).length > 0)\n )\n const [interimTranscript, setInterimTranscript] = useState('')\n const [internalSubmitting, setInternalSubmitting] = useState(false)\n const [internalErrorMessage, setInternalErrorMessage] = useState<string | undefined>(undefined)\n const [voiceSupported, setVoiceSupported] = useState(false)\n const [prefersReducedMotion, setPrefersReducedMotion] = useState(false)\n const [meterLevel, setMeterLevel] = useState(0)\n\n const recognitionRef = useRef<SpeechRecognitionLike | null>(null)\n const noSpeechTimeoutRef = useRef<number | null>(null)\n const isStoppingRef = useRef(false)\n const hasSubmittedVoiceFinalRef = useRef(false)\n const audioStreamRef = useRef<MediaStream | null>(null)\n const audioContextRef = useRef<AudioContext | null>(null)\n const meterRafRef = useRef<number | null>(null)\n const inputRef = useRef<HTMLTextAreaElement>(null)\n const inputId = useId()\n const statusId = `${inputId}-status`\n const counterId = `${inputId}-counter`\n\n const currentValue = isControlled ? value ?? '' : internalValue\n // Read after onSubmit settles, when the closure's value may be stale\n const currentValueRef = useRef(currentValue)\n useEffect(() => {\n currentValueRef.current = currentValue\n }, [currentValue])\n const hasText = normalizeTranscript(currentValue).length > 0\n const messageLength = normalizeMessage(currentValue).length\n const isOverLimit = maxLength !== undefined && messageLength > maxLength\n const effectiveSubmitting = isSubmitting ?? internalSubmitting\n const effectiveState = disabled ? 'disabled' : machineState\n const isListening = effectiveState === 'listening'\n const hasVoice = enableVoice && voiceSupported\n\n const updateMachineState = useCallback((event: Parameters<typeof agentInputStateTransition>[1]) => {\n setMachineState((previousState) => agentInputStateTransition(previousState, event))\n }, [])\n\n const updateValue = useCallback(\n (nextValue: string) => {\n if (!isControlled) {\n setInternalValue(nextValue)\n }\n onChange?.(nextValue)\n },\n [isControlled, onChange]\n )\n\n const clearNoSpeechTimeout = useCallback(() => {\n if (noSpeechTimeoutRef.current) {\n window.clearTimeout(noSpeechTimeoutRef.current)\n noSpeechTimeoutRef.current = null\n }\n }, [])\n\n const stopMeter = useCallback(async () => {\n if (meterRafRef.current) {\n window.cancelAnimationFrame(meterRafRef.current)\n meterRafRef.current = null\n }\n\n if (audioStreamRef.current) {\n audioStreamRef.current.getTracks().forEach((track) => track.stop())\n audioStreamRef.current = null\n }\n\n if (audioContextRef.current) {\n await audioContextRef.current.close()\n audioContextRef.current = null\n }\n\n setMeterLevel(0)\n }, [])\n\n const startMeter = useCallback(async () => {\n if (prefersReducedMotion || !navigator?.mediaDevices?.getUserMedia) {\n return\n }\n\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true })\n const audioContext = new AudioContext()\n const analyser = audioContext.createAnalyser()\n analyser.fftSize = 256\n\n const source = audioContext.createMediaStreamSource(stream)\n source.connect(analyser)\n\n const data = new Uint8Array(analyser.frequencyBinCount)\n\n audioStreamRef.current = stream\n audioContextRef.current = audioContext\n\n const loop = () => {\n analyser.getByteTimeDomainData(data)\n let sum = 0\n for (let index = 0; index < data.length; index += 1) {\n const centered = data[index] / 128 - 1\n sum += centered * centered\n }\n\n const rms = Math.sqrt(sum / data.length)\n const nextLevel = Math.max(0.05, Math.min(rms * 3, 1))\n setMeterLevel(nextLevel)\n meterRafRef.current = window.requestAnimationFrame(loop)\n }\n\n meterRafRef.current = window.requestAnimationFrame(loop)\n } catch {\n setMeterLevel(0)\n }\n }, [prefersReducedMotion])\n\n const emitVoiceError = useCallback(\n (code: AgentInputVoiceErrorCode, fallback?: string) => {\n const message = fallback ?? defaultVoiceErrorMessage(code)\n setInternalErrorMessage(message)\n updateMachineState({ type: 'VOICE_ERROR' })\n onVoiceError?.({ code, message })\n },\n [onVoiceError, updateMachineState]\n )\n\n const submitPayload = useCallback(\n async (rawText: string, source: AgentInputSubmitSource) => {\n const text = source === 'text' ? normalizeMessage(rawText) : normalizeTranscript(rawText)\n if (!text || disabled || effectiveSubmitting) {\n return\n }\n\n if (maxLength !== undefined && text.length > maxLength) {\n // A long transcript goes into the field to be shortened, unless the user has typed since\n if (source === 'voice-final' && !normalizeMessage(currentValueRef.current)) {\n updateValue(text)\n }\n return\n }\n\n updateMachineState({ type: 'SUBMIT' })\n setInternalErrorMessage(undefined)\n if (isSubmitting === undefined) {\n setInternalSubmitting(true)\n }\n\n try {\n await onSubmit({\n text,\n source,\n timestamp: new Date().toISOString(),\n })\n\n updateMachineState({ type: 'SUBMIT_SUCCESS' })\n setInterimTranscript('')\n // Keep a follow-up typed while submitting\n if (normalizeMessage(currentValueRef.current) === text) {\n updateValue('')\n }\n } catch {\n updateMachineState({ type: 'SUBMIT_ERROR' })\n // Restore the transcript unless the user has typed something since\n if (source === 'voice-final' && !normalizeMessage(currentValueRef.current)) {\n updateValue(text)\n }\n setInternalErrorMessage('Submission failed. Please try again.')\n } finally {\n if (isSubmitting === undefined) {\n setInternalSubmitting(false)\n }\n }\n },\n [disabled, effectiveSubmitting, isSubmitting, maxLength, onSubmit, updateMachineState, updateValue]\n )\n\n const stopListening = useCallback(\n async (emitStopEvent: boolean, preserveState: boolean = false) => {\n isStoppingRef.current = true\n clearNoSpeechTimeout()\n setInterimTranscript('')\n\n if (recognitionRef.current) {\n try {\n recognitionRef.current.stop()\n } catch {\n // no-op\n }\n }\n\n await stopMeter()\n if (emitStopEvent) {\n onVoiceStop?.()\n }\n\n if (!preserveState) {\n updateMachineState({ type: 'MIC_STOP', hasText })\n }\n isStoppingRef.current = false\n },\n [clearNoSpeechTimeout, hasText, onVoiceStop, stopMeter, updateMachineState]\n )\n\n const onNoSpeechTimeout = useCallback(async () => {\n clearNoSpeechTimeout()\n updateMachineState({ type: 'TIMEOUT_NO_SPEECH' })\n const message = defaultVoiceErrorMessage('no-speech')\n setInternalErrorMessage(message)\n onVoiceError?.({ code: 'no-speech', message })\n await stopListening(true, true)\n }, [clearNoSpeechTimeout, onVoiceError, stopListening, updateMachineState])\n\n const beginListening = useCallback(async () => {\n if (!recognitionRef.current || disabled || effectiveSubmitting) {\n return\n }\n\n setInternalErrorMessage(undefined)\n hasSubmittedVoiceFinalRef.current = false\n\n try {\n recognitionRef.current.start()\n updateMachineState({ type: 'MIC_START' })\n onVoiceStart?.()\n clearNoSpeechTimeout()\n noSpeechTimeoutRef.current = window.setTimeout(onNoSpeechTimeout, noSpeechTimeoutMs)\n await startMeter()\n } catch {\n emitVoiceError('unknown')\n }\n }, [\n clearNoSpeechTimeout,\n disabled,\n effectiveSubmitting,\n emitVoiceError,\n noSpeechTimeoutMs,\n onNoSpeechTimeout,\n onVoiceStart,\n startMeter,\n updateMachineState,\n ])\n\n useEffect(() => {\n const constructor = detectSpeechRecognitionConstructor(window)\n setVoiceSupported(Boolean(constructor))\n\n if (!enableVoice || !constructor) {\n return\n }\n\n const recognition = new constructor()\n recognition.lang = voiceLanguage\n recognition.interimResults = true\n recognition.continuous = false\n\n recognition.onresult = async (event) => {\n clearNoSpeechTimeout()\n noSpeechTimeoutRef.current = window.setTimeout(onNoSpeechTimeout, noSpeechTimeoutMs)\n\n let interim = ''\n let finalText = ''\n\n for (let index = event.resultIndex; index < event.results.length; index += 1) {\n const result = event.results[index]\n if (!result || !result[0]) continue\n\n if (result.isFinal) {\n finalText += ` ${result[0].transcript}`\n } else {\n interim += ` ${result[0].transcript}`\n }\n }\n\n const normalizedInterim = normalizeTranscript(interim)\n setInterimTranscript(normalizedInterim)\n updateMachineState({ type: 'VOICE_INTERIM' })\n\n if (normalizedInterim) {\n onVoiceInterim?.(normalizedInterim)\n }\n\n const normalizedFinal = normalizeTranscript(finalText)\n if (!normalizedFinal || hasSubmittedVoiceFinalRef.current) {\n return\n }\n\n hasSubmittedVoiceFinalRef.current = true\n updateMachineState({ type: 'VOICE_FINAL' })\n setInterimTranscript('')\n onVoiceFinal?.(normalizedFinal)\n\n await stopMeter()\n\n if (autoSubmitOnVoiceFinal) {\n await submitPayload(normalizedFinal, 'voice-final')\n } else {\n updateValue(normalizedFinal)\n updateMachineState({ type: 'MIC_STOP', hasText: true })\n }\n }\n\n recognition.onerror = async (event) => {\n const mappedCode = mapSpeechErrorCode(event.error)\n emitVoiceError(mappedCode)\n await stopListening(true, true)\n }\n\n recognition.onend = async () => {\n if (isStoppingRef.current) return\n clearNoSpeechTimeout()\n await stopMeter()\n if (!hasSubmittedVoiceFinalRef.current) {\n updateMachineState({ type: 'MIC_STOP', hasText })\n }\n }\n\n recognitionRef.current = recognition\n\n return () => {\n clearNoSpeechTimeout()\n recognitionRef.current?.abort()\n recognitionRef.current = null\n stopMeter()\n }\n }, [\n autoSubmitOnVoiceFinal,\n clearNoSpeechTimeout,\n emitVoiceError,\n enableVoice,\n hasText,\n noSpeechTimeoutMs,\n onNoSpeechTimeout,\n onVoiceFinal,\n onVoiceInterim,\n stopListening,\n stopMeter,\n submitPayload,\n updateMachineState,\n updateValue,\n voiceLanguage,\n ])\n\n const focusField = useCallback((cursor?: AgentInputFocusOptions['cursor']) => {\n const input = inputRef.current\n if (!input) return\n input.focus()\n if (!cursor) return\n\n const placeCursor = () => {\n if (cursor === 'all') {\n input.select()\n return\n }\n const position = cursor === 'start' ? 0 : input.value.length\n input.setSelectionRange(position, position)\n }\n placeCursor()\n // Again after the render a prefill in the same handler triggers, so 'end' lands after the new text\n window.setTimeout(placeCursor, 0)\n }, [])\n\n useImperativeHandle(\n ref,\n () => ({\n focus: (options) => focusField(options?.cursor),\n clear: () => {\n setInterimTranscript('')\n updateValue('')\n },\n }),\n [focusField, updateValue]\n )\n\n // The region above the field (decision 0046). The last review and suggestions shown are kept, so\n // they can fade out after the product removes them.\n const [shownReview, setShownReview] = useState(review)\n const [lastReviewAction, setLastReviewAction] = useState<'discarded' | 'undone' | null>(null)\n if (review && review !== shownReview) {\n setShownReview(review)\n // A new proposal or change replaces what the last Discard or Undo announced\n if (lastReviewAction) setLastReviewAction(null)\n }\n\n // A proposal replacing an open one is announced as an update (decision 0047). Consecutive\n // replacements alternate a trailing no-break space, so the live region's text changes each time\n // even when the summary doesn't; screen readers don't speak it.\n const openProposalId = review?.state === 'proposal' ? review.id : null\n const [announcedProposalId, setAnnouncedProposalId] = useState(openProposalId)\n const [replacementCount, setReplacementCount] = useState(0)\n if (openProposalId !== announcedProposalId) {\n setAnnouncedProposalId(openProposalId)\n setReplacementCount(openProposalId !== null && announcedProposalId !== null ? replacementCount + 1 : 0)\n }\n\n const cappedSuggestions = useMemo(() => (suggestions ?? []).slice(0, MAX_SUGGESTIONS), [suggestions])\n const showSuggestions = cappedSuggestions.length > 0 && !hasText && review?.state !== 'proposal'\n const [shownSuggestions, setShownSuggestions] = useState(cappedSuggestions)\n if (showSuggestions && cappedSuggestions !== shownSuggestions) {\n setShownSuggestions(cappedSuggestions)\n }\n\n const suggestionCount = suggestions?.length ?? 0\n useEffect(() => {\n if (!isProduction && suggestionCount > MAX_SUGGESTIONS) {\n console.warn(\n `AgentInput shows at most ${MAX_SUGGESTIONS} suggestions (decision 0046); ${suggestionCount} were passed, so the rest are hidden.`\n )\n }\n }, [suggestionCount])\n\n const reviewAnnouncement = review\n ? review.state === 'proposal'\n ? `${replacementCount > 0 ? 'Proposal updated. ' : ''}${review.summary}. Accept or discard.${\n replacementCount > 0 && replacementCount % 2 === 0 ? '\\u00A0' : ''\n }`\n : 'Changes applied. Undo available.'\n : lastReviewAction === 'discarded'\n ? 'Suggestion discarded.'\n : lastReviewAction === 'undone'\n ? 'Changes undone.'\n : ''\n\n const onReviewDiscard = (onDiscard: () => void) => {\n setLastReviewAction('discarded')\n onDiscard()\n // The bar is leaving, so focus goes to the field rather than being lost\n focusField()\n }\n\n const onReviewUndo = (onUndo: () => void) => {\n setLastReviewAction('undone')\n onUndo()\n focusField()\n }\n\n const onPickSuggestion = (text: string) => {\n updateValue(text)\n onSuggestionSelect?.(text)\n // Fills, never sends: the user reviews the text in the field first\n focusField('end')\n }\n\n useEffect(() => {\n const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)')\n const sync = () => setPrefersReducedMotion(mediaQuery.matches)\n sync()\n mediaQuery.addEventListener('change', sync)\n return () => mediaQuery.removeEventListener('change', sync)\n }, [])\n\n useEffect(() => {\n if (effectiveState === 'error' && !internalErrorMessage && !errorMessage) {\n updateMachineState({ type: 'RESET_ERROR', hasText })\n }\n }, [effectiveState, errorMessage, hasText, internalErrorMessage, updateMachineState])\n\n useEffect(() => {\n if (!disabled && (machineState === 'idle' || machineState === 'typing')) {\n updateMachineState({ type: 'INPUT_CHANGE', hasText })\n }\n }, [disabled, hasText, machineState, updateMachineState])\n\n const displayedValue = useMemo(() => {\n if (!interimTranscript) {\n return currentValue\n }\n\n return normalizeMessage([currentValue, interimTranscript].filter(Boolean).join(' '))\n }, [currentValue, interimTranscript])\n\n const lastFieldWidthRef = useRef(0)\n\n const resizeField = useCallback(() => {\n const field = inputRef.current\n // Hidden (for example in a closed sheet): measure when it's shown, via the observer below\n if (!field || field.clientWidth === 0) return\n lastFieldWidthRef.current = field.clientWidth\n // Collapsing the field to measure it shrinks the page for a moment; some engines clamp a page\n // scrolled to the bottom when that happens, so restore its scroll position\n const { scrollX, scrollY } = window\n field.style.height = 'auto'\n field.style.height = `${field.scrollHeight}px`\n if (window.scrollY !== scrollY) window.scrollTo(scrollX, scrollY)\n // Scroll only once max-height (six rows) clips the content\n field.style.overflowY = field.scrollHeight > field.clientHeight ? 'auto' : 'hidden'\n }, [])\n\n useIsomorphicLayoutEffect(() => {\n resizeField()\n }, [displayedValue, resizeField])\n\n // Text rewraps when the field's width changes (layout, or being shown), not only the window's\n useEffect(() => {\n const field = inputRef.current\n if (!field || typeof ResizeObserver === 'undefined') return\n const observer = new ResizeObserver(() => {\n // Its own height changes trigger this too; only a width change can rewrap the text\n if (field.clientWidth !== lastFieldWidthRef.current) resizeField()\n })\n observer.observe(field)\n return () => observer.disconnect()\n }, [resizeField])\n\n const onTextChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n updateValue(event.target.value)\n if (effectiveState === 'error') {\n setInternalErrorMessage(undefined)\n updateMachineState({ type: 'RESET_ERROR', hasText: normalizeTranscript(event.target.value).length > 0 })\n }\n }\n\n const onInputKeyDown = async (event: KeyboardEvent<HTMLTextAreaElement>) => {\n const isComposing = event.nativeEvent.isComposing || event.keyCode === 229\n\n // Escape during an IME composition cancels the composition, not the request\n if (event.key === 'Escape' && onStop && effectiveSubmitting && !isComposing) {\n event.preventDefault()\n onStop()\n return\n }\n\n if (event.key === 'Escape' && isListening) {\n event.preventDefault()\n await stopListening(true)\n return\n }\n\n // Shift+Enter adds a line. Enter also confirms an IME composition (Japanese, Chinese, Korean);\n // only submit once it ends\n if (event.key === 'Enter' && !event.shiftKey && !isComposing) {\n event.preventDefault()\n await submitPayload(currentValue, 'text')\n }\n }\n\n const onMicToggle = async () => {\n if (!hasVoice) return\n\n if (isListening) {\n await stopListening(true)\n return\n }\n\n await beginListening()\n }\n\n const statusByState: Record<AgentInputMachineState, string> = {\n idle: statusMessage || helperText,\n typing: statusMessage || helperText,\n listening: statusMessage || DEFAULT_LISTENING_MESSAGE,\n processingFinalTranscript: statusMessage || DEFAULT_PROCESSING_MESSAGE,\n submitting: statusMessage || 'Submitting…',\n error: errorMessage || internalErrorMessage || 'Voice input failed. Try again.',\n disabled: statusMessage || helperText,\n }\n\n const overLimitMessage =\n isOverLimit && maxLength !== undefined\n ? `Over the ${maxLength}-character limit. Shorten your message to send.`\n : undefined\n\n // A product-set error shows in any state. Unsupported voice hides the mic without a message.\n const resolvedStatus = errorMessage || overLimitMessage || statusByState[effectiveState]\n const isStatusError = Boolean(errorMessage) || isOverLimit || effectiveState === 'error'\n const meterBars = createMeterBars(meterLevel)\n const showStop = Boolean(onStop) && effectiveSubmitting\n const sendDisabled = disabled || effectiveSubmitting || isOverLimit || messageLength === 0\n const showCounter = maxLength !== undefined && messageLength >= maxLength * COUNTER_THRESHOLD\n // Announced once when the limit is reached; going over is announced by the status line\n const limitAnnouncement =\n maxLength !== undefined && messageLength === maxLength ? `Character limit reached: ${maxLength} characters` : ''\n\n return (\n <Container data-testid={dataTestId} $docked={docked} data-docked={docked || undefined}>\n <VisuallyHiddenLabel htmlFor={inputId}>\n {label}\n </VisuallyHiddenLabel>\n <ControlsRow>\n <RegionPart show={Boolean(review)} reducedExit={prefersReducedMotion}>\n {shownReview && (\n <ReviewBar data-testid=\"agent-input-review\">\n <Typography variant=\"small\" color=\"default\">\n {shownReview.state === 'proposal' ? shownReview.summary : 'Changes applied'}\n </Typography>\n {/* Accept, then Undo, render as the same first button, so focus stays on it after Accept */}\n <ReviewActions>\n {shownReview.state === 'proposal' ? (\n <>\n <Button variant=\"primary\" size=\"small\" onClick={shownReview.onAccept}>\n Accept\n </Button>\n <Button variant=\"secondary\" size=\"small\" onClick={() => onReviewDiscard(shownReview.onDiscard)}>\n Discard\n </Button>\n </>\n ) : (\n <Button variant=\"naked\" size=\"small\" onClick={() => onReviewUndo(shownReview.onUndo)}>\n Undo\n </Button>\n )}\n </ReviewActions>\n </ReviewBar>\n )}\n </RegionPart>\n\n <RegionPart show={showSuggestions} reducedExit={prefersReducedMotion}>\n <SuggestionList aria-label=\"Suggestions\" data-testid=\"agent-input-suggestions\">\n {/* Keyed by position too: an agent can return the same suggestion twice */}\n {shownSuggestions.map((suggestion, index) => (\n <li key={`${index}-${suggestion}`}>\n <SuggestionChip onClick={() => onPickSuggestion(suggestion)}>{suggestion}</SuggestionChip>\n </li>\n ))}\n </SuggestionList>\n </RegionPart>\n\n <VisuallyHidden aria-live=\"polite\" aria-atomic=\"true\" data-testid=\"agent-input-review-announcement\">\n {reviewAnnouncement}\n </VisuallyHidden>\n\n <InputWrapper>\n <InputShell data-disabled={disabled}>\n <Input\n ref={inputRef}\n id={inputId}\n rows={1}\n enterKeyHint=\"send\"\n aria-label={label}\n value={displayedValue}\n onChange={onTextChange}\n onKeyDown={onInputKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={isListening}\n aria-describedby={showCounter ? `${statusId} ${counterId}` : statusId}\n aria-invalid={isOverLimit || undefined}\n />\n\n <InputActions>\n {hasVoice && (\n <MicButtonWrapper $isListening={isListening} $reducedMotion={prefersReducedMotion}>\n {isListening && (\n <MicListeningRing\n $reducedMotion={prefersReducedMotion}\n aria-hidden=\"true\"\n data-testid=\"agent-input-listening-ring\"\n data-animated={prefersReducedMotion ? 'false' : 'true'}\n />\n )}\n <CircularActionIconButton\n variant=\"naked\"\n size=\"medium\"\n iconName={'mic'}\n onClick={onMicToggle}\n aria-pressed={isListening}\n aria-label={isListening ? 'Stop voice input' : 'Start voice input'}\n disabled={disabled || effectiveSubmitting}\n type=\"button\"\n />\n </MicButtonWrapper>\n )}\n\n {showStop ? (\n <CircularActionIconButton\n variant=\"secondary\"\n size=\"medium\"\n iconName=\"stop\"\n onClick={() => onStop?.()}\n disabled={disabled}\n aria-label=\"Stop\"\n type=\"button\"\n />\n ) : (\n <CircularActionIconButton\n variant=\"secondary\"\n size=\"medium\"\n iconName=\"directionUp\"\n onClick={() => submitPayload(currentValue, 'text')}\n disabled={sendDisabled}\n aria-label=\"Send message\"\n type=\"button\"\n />\n )}\n </InputActions>\n </InputShell>\n </InputWrapper>\n </ControlsRow>\n\n <StatusRow>\n <StatusText $isError={isStatusError}>\n <StatusAnnouncement id={statusId} role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n {resolvedStatus && (\n <Typography variant=\"small\" color={isStatusError ? 'error' : 'subdued'}>\n {resolvedStatus}\n </Typography>\n )}\n </StatusAnnouncement>\n </StatusText>\n\n <StatusEnd>\n {isListening && !prefersReducedMotion && (\n <MeterContainer aria-hidden=\"true\">\n {meterBars.map((barHeight, index) => (\n <MeterBar key={`meter-${index}`} $height={barHeight} />\n ))}\n </MeterContainer>\n )}\n\n {showCounter && (\n <Typography variant=\"small\" color={isOverLimit ? 'error' : 'subdued'}>\n <span id={counterId} data-testid=\"agent-input-counter\">\n {messageLength}/{maxLength}\n <VisuallyHidden> characters</VisuallyHidden>\n </span>\n </Typography>\n )}\n </StatusEnd>\n\n {maxLength !== undefined && (\n <VisuallyHidden role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" data-testid=\"agent-input-limit-announcement\">\n {limitAnnouncement}\n </VisuallyHidden>\n )}\n </StatusRow>\n </Container>\n )\n}\n\nexport const AgentInput = forwardRef(AgentInputWithRef)\n\nAgentInput.displayName = 'AgentInput'\n","import React from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n// The dismiss timer needs the resolved duration, not its CSS variable (decision 0041)\n// eslint-disable-next-line no-restricted-imports\nimport tokenValues from '@/styles/tokens.json'\nimport { Icon } from '../../atoms/Icon'\nimport { IconButton } from '../../atoms/IconButton'\nimport type { IconName } from '../../../types/icons'\nimport { useInert } from '../../../lib/usePresence'\n\nconst { semantic } = tokens\nconst { alert } = tokens.component\nconst { duration, easing } = semantic.motion\n\n// Dismissing fades the alert out, then collapses the space it took (Ollie's call, #35).\n// Each half takes duration.fast, so the whole exit stays within the 300ms maximum (P6). The timer\n// needs the resolved value, not the CSS variable (decision 0041).\nconst FADE_MS = parseInt(tokenValues.semantic.motion.duration.fast, 10)\nconst EXIT_MS = FADE_MS * 2\n\n// The --alert-exit-* properties are the alert's height and vertical padding, measured\n// when it's dismissed, so nothing moves until the fade has finished\nconst fadeThenCollapse = keyframes`\n 0%, 50% {\n max-height: var(--alert-exit-height);\n padding-top: var(--alert-exit-padding-top);\n padding-bottom: var(--alert-exit-padding-bottom);\n border-width: ${semantic.border.width.thin};\n }\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n }\n 100% {\n opacity: 0;\n max-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n border-width: 0;\n }\n`\n\nconst fadeOut = keyframes`\n from { opacity: 1; }\n to { opacity: 0; }\n`\n\n// The exit ends on the alert's own animationend: 300ms, or 150ms under reduced motion\n// (chosen when dismissed). A timer of the same length removes it if no animation event\n// arrives, for example where animations are disabled or the tab is hidden.\n\n// The generated names of the two exits (full, and reduced motion)\nconst EXIT_ANIMATION_NAMES = [fadeThenCollapse.getName(), fadeOut.getName()]\n\nexport interface AlertProps {\n /**\n * Visual style variant affecting background, border, and icon colors\n * - error: Critical issues, validation errors (cross in a hexagon)\n * - warning: Cautions, potential issues (`!` in a triangle)\n * - info: Tips, helper text, neutral information (`i` in a square)\n * - success: Confirmations, successful operations (tick in a circle)\n * @default 'info'\n */\n variant?: 'error' | 'warning' | 'info' | 'success'\n\n /**\n * Whether the severity border is drawn (decision 0019)\n * - outlined: severity tint and a 1px severity border. Only for alerts at the top: a\n * page-level alert at the top of the page, an alert at the top of the content area, and an\n * error summary\n * - borderless: severity tint only. Every other alert, including alerts inside content and at\n * the bottom of a page; the icon and title colour carry the severity\n * @default 'outlined'\n */\n appearance?: 'outlined' | 'borderless'\n \n /**\n * Alert message content\n */\n children: React.ReactNode\n \n /**\n * Optional title/heading for the alert\n */\n title?: string\n \n /**\n * Show close/dismiss button\n * @default false\n */\n dismissible?: boolean\n \n /**\n * Callback function when alert is dismissed. Called once the dismiss animation has\n * finished and the alert has been removed.\n */\n onDismiss?: () => void\n \n /**\n * Optional action button or component, placed below the message and left-aligned with it\n */\n action?: React.ReactNode\n \n /**\n * ARIA live region behavior\n * - polite: Non-urgent announcements\n * - assertive: Important, time-sensitive information\n * - off: Not announced\n * @default 'polite'\n */\n ariaLive?: 'polite' | 'assertive' | 'off'\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\n// Default icons by variant\n// Each severity's status icon (decision 0045): decorative, because the title and message say it\nconst variantIcons: Record<string, IconName> = {\n error: 'statusError',\n warning: 'statusWarning',\n info: 'statusInfo',\n success: 'statusSuccess'\n}\n\n// Icon colors by variant (using semantic icon color tokens)\nconst variantIconColors: Record<string, 'error' | 'warning' | 'success' | 'interactive'> = {\n error: 'error',\n warning: 'warning',\n info: 'interactive',\n success: 'success'\n}\n\n// Title colors by variant (using semantic text color tokens)\nconst variantTitleColors: Record<string, 'error' | 'warning' | 'success' | 'interactive'> = {\n error: 'error',\n warning: 'warning',\n info: 'interactive',\n success: 'success'\n}\n\nconst StyledAlert = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $variant: AlertProps['variant']\n $appearance: NonNullable<AlertProps['appearance']>\n $isExiting: boolean\n $reducedExit: boolean\n}>`\n display: flex;\n /* Items start at the top, so the icon and dismiss button line up with the first line */\n align-items: flex-start;\n gap: ${semantic.space[300]};\n padding: ${semantic.space[300]};\n border-radius: ${semantic.radius.lg};\n border: ${semantic.border.width.thin} solid;\n position: relative;\n width: 100%;\n \n /* Severity × appearance colours from Alert's component tokens (decision 0019). Borderless\n keeps a transparent border, so both appearances take the same space. */\n background-color: ${({ $variant = 'info' }) => alert.severity[$variant].background};\n color: ${({ $variant = 'info' }) => alert.severity[$variant].text};\n border-color: ${({ $variant = 'info', $appearance }) => alert.appearance[$appearance].borderColor[$variant]};\n \n /* Responsive adjustments */\n @media (min-width: ${semantic.breakpoint.md}) {\n padding: ${semantic.space[400]};\n }\n\n /* The exit is chosen once, when dismissed (not by a media query), so a reduced-motion\n preference that changes mid-exit can't swap animations and flash the faded alert back.\n Reduced motion: fade only; the space closes instantly afterwards. */\n ${({ $isExiting, $reducedExit }) => $isExiting && css`\n overflow: hidden;\n pointer-events: none;\n animation: ${$reducedExit\n ? css`${fadeOut} ${duration.fast} ${easing.accelerate} forwards`\n : css`${fadeThenCollapse} ${EXIT_MS}ms ${easing.accelerate} forwards`};\n `}\n`\n\nconst StyledIconContainer = styled.div`\n display: flex;\n align-items: center;\n flex-shrink: 0;\n`\n\nconst StyledContent = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: ${semantic.space[100]};\n min-width: 0; /* Allow text wrapping */\n`\n\nconst StyledTitle = styled.span`\n font: ${alert.title.typography};\n line-height: ${alert.title.lineHeight};\n margin: 0;\n`\n\nconst StyledMessage = styled.span`\n font: ${alert.message.typography};\n line-height: ${alert.message.lineHeight};\n`\n\n// The action follows the content, left-aligned with it, so it's read after the message\n// (#122). With the content's xs gap, the space above it is md: a separate step.\nconst StyledActions = styled.div`\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: ${semantic.space[200]};\n margin-top: calc(${semantic.space[300]} - ${semantic.space[100]});\n`\n\n// The dismiss button's centre lines up with the first line of content: the title, or the\n// message when there's no title (decision 0019). The slot is as tall as that line and the\n// button is centred in it, overflowing evenly into the padding, so it stays aligned at every\n// padding and line height. Being in the row, it also keeps text and actions from running under it.\nconst StyledDismissSlot = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $lineHeight: string }>`\n display: flex;\n align-items: center;\n flex-shrink: 0;\n height: ${({ $lineHeight }) => $lineHeight};\n`\n\n// The glyph sits on the padding edge, mirroring the severity icon on the left\nconst StyledDismissButton = styled(IconButton)`\n margin-right: calc((${semantic.size.control.sm} - ${semantic.size.icon.sm}) / -2);\n`\n\nexport const Alert = ({\n variant = 'info',\n appearance = 'outlined',\n children,\n title,\n dismissible = false,\n onDismiss,\n action,\n ariaLive = 'polite',\n 'data-testid': dataTestId,\n ...restProps\n}: AlertProps) => {\n // `inline` was removed in 3.0 (use InlineAlert, decision 0019); plain JavaScript that still\n // passes it gets a block alert, with the prop kept off the DOM\n const { inline: _inline, ...props } = restProps as typeof restProps & { inline?: unknown }\n const [phase, setPhase] = React.useState<'visible' | 'exiting' | 'dismissed'>('visible')\n const [reducedExit, setReducedExit] = React.useState(false)\n const [exitStyle, setExitStyle] = React.useState<React.CSSProperties>()\n const alertRef = React.useRef<HTMLDivElement>(null)\n // While it exits, its controls leave the tab order and can't be activated\n useInert(alertRef, phase === 'exiting')\n const onDismissRef = React.useRef(onDismiss)\n React.useEffect(() => {\n onDismissRef.current = onDismiss\n }, [onDismiss])\n\n const handleDismiss = () => {\n const node = alertRef.current\n if (node) {\n const style = window.getComputedStyle(node)\n const { paddingTop, paddingBottom } = style\n // max-height applies to the content box unless the alert is border-box (it depends on\n // the consumer's reset), so measure whichever box it uses; nothing moves at the click\n const height = Math.max(\n 0,\n style.boxSizing === 'border-box'\n ? node.offsetHeight\n : node.offsetHeight -\n parseFloat(paddingTop) -\n parseFloat(paddingBottom) -\n parseFloat(style.borderTopWidth) -\n parseFloat(style.borderBottomWidth)\n )\n setExitStyle({\n '--alert-exit-height': `${height}px`,\n '--alert-exit-padding-top': paddingTop,\n '--alert-exit-padding-bottom': paddingBottom,\n } as React.CSSProperties)\n }\n setReducedExit(\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches\n )\n setPhase('exiting')\n }\n\n React.useEffect(() => {\n if (phase !== 'exiting') return\n const timer = setTimeout(() => setPhase('dismissed'), reducedExit ? FADE_MS : EXIT_MS)\n return () => clearTimeout(timer)\n }, [phase, reducedExit])\n\n // onDismiss fires once the alert has been removed from the DOM, so a consumer that\n // unmounts it in onDismiss still gets the animation, and can't observe it\n React.useEffect(() => {\n if (phase === 'dismissed') onDismissRef.current?.()\n }, [phase])\n\n if (phase === 'dismissed') {\n return null\n }\n\n const isExiting = phase === 'exiting'\n\n // Consumers can pass extra HTML attributes, including style, aria-hidden and onAnimationEnd\n const forwarded = props as {\n style?: React.CSSProperties\n 'aria-hidden'?: React.AriaAttributes['aria-hidden']\n onAnimationEnd?: React.AnimationEventHandler<HTMLDivElement>\n }\n\n const handleAnimationEnd = (event: React.AnimationEvent<HTMLDivElement>) => {\n forwarded.onAnimationEnd?.(event)\n // Only the exit itself ends the dismissal: not animations bubbling up from children,\n // on pseudo-elements, or other animations a consumer puts on the alert\n if (\n isExiting &&\n event.target === event.currentTarget &&\n !event.pseudoElement &&\n EXIT_ANIMATION_NAMES.includes(event.animationName)\n ) {\n setPhase('dismissed')\n }\n }\n\n // Get the icon for the current variant\n const iconName = variantIcons[variant]\n const alertIconColor = variantIconColors[variant]\n const alertTitleColor = variantTitleColors[variant]\n\n // Determine ARIA role based on variant and aria-live\n const role = variant === 'error' ? 'alert' : 'status'\n\n return (\n <StyledAlert\n role={role}\n aria-live={ariaLive}\n $variant={variant}\n $appearance={appearance}\n $isExiting={isExiting}\n $reducedExit={reducedExit}\n data-testid={dataTestId}\n {...props}\n ref={alertRef}\n aria-hidden={isExiting ? true : forwarded['aria-hidden']}\n style={isExiting ? { ...forwarded.style, ...exitStyle } : forwarded.style}\n onAnimationEnd={handleAnimationEnd}\n >\n <StyledIconContainer aria-hidden=\"true\">\n <Icon name={iconName} size=\"md\" iconColor={alertIconColor} />\n </StyledIconContainer>\n\n <StyledContent>\n {title && <StyledTitle role=\"heading\" aria-level={6} color={alertTitleColor}>{title}</StyledTitle>}\n <StyledMessage>{children}</StyledMessage>\n {action && <StyledActions>{action}</StyledActions>}\n </StyledContent>\n\n {dismissible && (\n <StyledDismissSlot\n $lineHeight={title ? alert.title.lineHeight : alert.message.lineHeight}\n >\n <StyledDismissButton\n iconName=\"close\"\n size=\"small\"\n variant=\"naked\"\n onClick={handleDismiss}\n aria-label=\"Dismiss alert\"\n data-testid={dataTestId ? `${dataTestId}-dismiss` : undefined}\n />\n </StyledDismissSlot>\n )}\n </StyledAlert>\n )\n}\n\nAlert.displayName = 'Alert'\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { Icon } from '../../atoms/Icon'\nimport type { IconName } from '../../../types/icons'\nimport { StatusShape } from '../../atoms/StatusLabel/StatusShape'\nimport type { StatusShape as StatusShapeName } from '../../../lib/statusShapes'\n\nconst { semantic } = tokens\nconst { color, typography, size } = semantic\n\nexport type InlineAlertVariant = 'error' | 'warning' | 'info' | 'success'\nexport type InlineAlertSize = 'small' | 'medium'\n\nexport interface InlineAlertProps {\n /**\n * Severity, shown by the icon and the text colour\n * @default 'info'\n */\n variant?: InlineAlertVariant\n\n /**\n * Size on the label scale (decision 0018): small (20px) for dense places such as tables,\n * medium (24px) for forms and content. The message can wrap; the size sets its minimum height.\n * @default 'medium'\n */\n size?: InlineAlertSize\n\n /**\n * The message: short text only (no title, action or dismiss button; use Alert for those).\n * With no message, InlineAlert renders an empty live region and no icon: keep it mounted and\n * set the message to have screen readers announce it reliably.\n */\n children?: React.ReactNode\n\n /**\n * ARIA live region behaviour, as on Alert\n * - polite: non-urgent announcements\n * - assertive: important, time-sensitive information\n * - off: not announced\n * @default 'polite'\n */\n ariaLive?: 'polite' | 'assertive' | 'off'\n\n /**\n * Element id. When the message gives feedback about a control, the control references this\n * id with aria-describedby, so the message is read when the control is focused.\n */\n id?: string\n\n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\n// Each severity's status icon and, at the small size, its shape (decision 0045)\nconst variantIcons: Record<InlineAlertVariant, IconName> = {\n error: 'statusError',\n warning: 'statusWarning',\n info: 'statusInfo',\n success: 'statusSuccess'\n}\n\nconst variantTextColors: Record<InlineAlertVariant, string> = {\n error: color.text.danger,\n warning: color.text.warning,\n info: color.text.accent,\n success: color.text.success\n}\n\nconst variantShapes: Record<InlineAlertVariant, StatusShapeName> = {\n error: 'error',\n warning: 'warning',\n info: 'info',\n success: 'success'\n}\n\nconst sizeConfig = {\n small: { font: typography.caption, gap: semantic.space[100], icon: 'xs' as const },\n medium: { font: typography.small, gap: semantic.space[200], icon: 'sm' as const }\n}\n\nconst StyledInlineAlert = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $variant: InlineAlertVariant; $size: InlineAlertSize; $empty: boolean }>`\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n min-height: ${({ $size, $empty }) => ($empty ? '0' : size.label[$size])};\n gap: ${({ $size }) => sizeConfig[$size].gap};\n font: ${({ $size }) => sizeConfig[$size].font};\n color: ${({ $variant }) => variantTextColors[$variant]};\n`\n\n// One line of the message's font tall, so the icon centres on the first line at any size:\n// the zero-width space gives the box the font's line height without a fixed value\nconst StyledIconLine = styled.span`\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n\n &::after {\n content: '\\\\200B';\n }\n`\n\nconst StyledMessage = styled.span`\n min-width: 0;\n`\n\n/**\n * InlineAlert is a short, local message that sits next to what it's about: between paragraphs,\n * below a field or in a table cell (decision 0019). A severity icon and text in the severity\n * colour, with no background or border. For a title, an action or a dismiss button, use Alert.\n *\n * @example\n * ```tsx\n * <InlineAlert variant=\"success\">Saved</InlineAlert>\n *\n * // Field feedback: the control references the message with aria-describedby\n * <input id=\"email\" aria-describedby=\"email-error\" aria-invalid=\"true\" />\n * <InlineAlert id=\"email-error\" variant=\"error\" size=\"small\">Enter a valid email address</InlineAlert>\n * ```\n */\nexport const InlineAlert: React.FC<InlineAlertProps> = ({\n variant = 'info',\n size: alertSize = 'medium',\n children,\n ariaLive = 'polite',\n id,\n 'data-testid': dataTestId\n}) => {\n // A live region is announced reliably only when it exists before its content changes, so with\n // no message it stays mounted as an empty region, with no icon and no minimum height\n const hasMessage = children !== undefined && children !== null && children !== false && children !== ''\n\n return (\n <StyledInlineAlert\n // Same roles as Alert; ariaLive sets how urgently changes are announced\n role={variant === 'error' ? 'alert' : 'status'}\n aria-live={ariaLive}\n id={id}\n data-testid={dataTestId}\n $variant={variant}\n $size={alertSize}\n $empty={!hasMessage}\n >\n {hasMessage && (\n <>\n <StyledIconLine aria-hidden=\"true\">\n {/* The icon takes the text colour, so the two can't diverge */}\n {/* A 12px outline icon is too small to read, so the small size shows the status shape (0045) */}\n {alertSize === 'small'\n ? <StatusShape shape={variantShapes[variant]} />\n : <Icon name={variantIcons[variant]} size={sizeConfig[alertSize].icon} iconColor=\"inherit\" />}\n </StyledIconLine>\n <StyledMessage>{children}</StyledMessage>\n </>\n )}\n </StyledInlineAlert>\n )\n}\n\nInlineAlert.displayName = 'InlineAlert'\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Container } from '../../atoms/Container'\nimport { Typography } from '../../atoms/Typography'\nimport { Icon } from '../../atoms/Icon'\nimport tokens from '@/lib/cssTokens'\n\ninterface Breadcrumb {\n label: string\n url: string\n}\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[]\n 'data-testid'?: string\n /**\n * Custom link component (e.g., Next.js Link)\n * @example linkComponent={NextLink}\n */\n linkComponent?: React.ComponentType<any>\n}\n\nconst BreadcrumbNavStyled = styled.nav`\n border-bottom: ${tokens.semantic.border.default};\n\n ol {\n display: flex;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n }\n`\n\nconst BreadcrumbStyled = styled.li`\n text-transform: uppercase;\n display: inline-flex;\n align-items: center;\n gap: ${tokens.semantic.space[200]};\n padding: ${tokens.semantic.space[200]};\n\n &:last-of-type a {\n text-decoration: none;\n color: ${tokens.semantic.color.text.muted};\n }\n\n &:last-of-type p {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: ${tokens.component.breadcrumbs.item.maxWidth};\n }\n\n > a {\n display: inline-flex;\n align-items: center;\n text-decoration: underline;\n color: ${tokens.semantic.color.text.default};\n }\n`\n\nconst BreadcrumbSeparator = styled.span`\n display: inline-flex;\n align-items: center;\n opacity: 0.5;\n`\n\nconst isInternalUrl = (url: string) => {\n return url.startsWith('/') && !url.startsWith('http')\n}\n\nexport const Breadcrumbs: React.FC<BreadcrumbsProps> = ({ \n breadcrumbs, \n linkComponent: LinkComponent \n}) => {\n return (\n <Container>\n <BreadcrumbNavStyled aria-label=\"breadcrumb\">\n <ol>\n {breadcrumbs.map((breadcrumb, index) => (\n <React.Fragment key={index}>\n <BreadcrumbStyled>\n {index === breadcrumbs.length - 1 ? (\n <Typography variant=\"caption\">{breadcrumb.label}</Typography>\n ) : LinkComponent && isInternalUrl(breadcrumb.url) ? (\n <LinkComponent href={breadcrumb.url}>\n <Typography variant=\"caption\">{breadcrumb.label}</Typography>\n </LinkComponent>\n ) : (\n <a \n href={breadcrumb.url} \n {...(!isInternalUrl(breadcrumb.url) && { \n target: \"_blank\", \n rel: \"noopener noreferrer\" \n })}\n >\n <Typography variant=\"caption\">{breadcrumb.label}</Typography>\n </a>\n )}\n </BreadcrumbStyled>\n {index < breadcrumbs.length - 1 && (\n <BreadcrumbSeparator aria-hidden=\"true\">\n <Icon name=\"arrowRight\" size=\"xs\" iconColor=\"subdued\" />\n </BreadcrumbSeparator>\n )}\n </React.Fragment>\n ))}\n </ol>\n </BreadcrumbNavStyled>\n </Container>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Stack } from '../../atoms/Stack'\nimport { Typography } from '../../atoms/Typography'\nimport { Picture } from '../../atoms/Picture/Picture'\nimport tokens from '@/lib/cssTokens'\n\nexport type CardSmallProps = {\n title: string\n picture?: string\n subtitle?: string\n meta?: string\n href?: string\n /**\n * Custom link component (e.g., Next.js Link)\n * @example linkComponent={NextLink}\n */\n linkComponent?: React.ComponentType<any>\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\n// The whole card is one link (#185): hovering anywhere fades its image, pressing fades it one step\n// further, and keyboard focus draws the system focus ring around the card (decision 0029)\nconst CardSmallStyled = styled.div`\n a {\n display: block;\n text-decoration: none;\n border-radius: ${tokens.semantic.radius.sm};\n }\n\n img {\n border-radius: ${tokens.semantic.radius.sm};\n transition: ${tokens.semantic.motion.transition.press};\n width: 100%;\n height: auto;\n display: block;\n }\n\n a:hover img {\n opacity: ${tokens.semantic.opacity.hover};\n }\n\n a:active img {\n opacity: ${tokens.semantic.opacity.pressed};\n }\n\n a:focus-visible {\n outline: ${tokens.semantic.border.focus};\n outline-offset: ${tokens.semantic.border.focusOffset};\n }\n`\n\nexport const CardSmall: React.FC<CardSmallProps> = ({\n title,\n picture,\n subtitle,\n meta,\n href,\n linkComponent: LinkComponent,\n 'data-testid': dataTestId,\n}) => {\n if (!picture || !meta) {\n return null\n }\n\n const content = (\n <Stack direction=\"column\" gap='sm'>\n <Picture\n title={title}\n src={picture}\n width={300}\n height={300}\n />\n <Stack direction=\"column\" gap='xs'>\n <Typography variant=\"small\">{title}</Typography>\n <Stack direction=\"column\" gap='none'>\n {subtitle && <Typography variant=\"label\" color=\"subdued\">{subtitle}</Typography>}\n {meta && <Typography variant=\"label\" color=\"subdued\">{meta}</Typography>}\n </Stack>\n </Stack>\n </Stack>\n )\n\n return (\n <CardSmallStyled data-testid={dataTestId}>\n {LinkComponent && href ? (\n <LinkComponent href={href} aria-label={title}>\n {content}\n </LinkComponent>\n ) : (\n <a href={href || '#'} aria-label={title}>\n {content}\n </a>\n )}\n </CardSmallStyled>\n )\n}\n","import styled from 'styled-components'\nimport { Chip } from '../../atoms/Chip'\nimport { Picture } from '../../atoms/Picture'\nimport { Stack } from '../../atoms/Stack'\nimport { Typography } from '../../atoms/Typography'\nimport tokens from '@/lib/cssTokens'\n\n\nexport type CardLargeProps = {\n title: string\n excerpt: string\n subtitle?: string\n labels?: string[]\n picture: string\n onImageClick?: () => void\n imageHref?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\nconst CardLargeStyled = styled.div`\n max-width: ${tokens.component.cardLarge.maxWidth};\n\n a {\n text-decoration: none;\n }\n\n /* The image answers hover and press through Picture, and only when it's clickable (issue 185) */\n img {\n border-radius: ${tokens.semantic.radius['2xl']};\n width: 100%;\n }\n`\n\nexport const CardLarge = ({\n title,\n excerpt,\n subtitle,\n labels = [],\n picture,\n onImageClick,\n imageHref,\n 'data-testid': dataTestId,\n}: CardLargeProps) => {\n return (\n <CardLargeStyled data-testid={dataTestId}>\n <Stack direction=\"column\" gap=\"md\">\n <Picture \n title={title} \n src={picture} \n onClick={onImageClick}\n href={imageHref}\n />\n <Stack direction=\"row\" alignItems=\"flex-start\" justifyContent=\"space-between\" gap=\"xs\">\n <Stack direction=\"column\" gap=\"xs\">\n <Typography variant=\"h5\">{title}</Typography>\n {subtitle && (\n <Typography variant=\"small\" color=\"subdued\">{subtitle}</Typography>\n )}\n {excerpt && (\n <Typography variant=\"body\">{excerpt}</Typography>\n )}\n </Stack>\n <Stack direction=\"row\" alignItems=\"center\" gap=\"xs\">\n {Array.isArray(labels) && labels.map((label, index) => (\n <Chip key={index} title={label} variant=\"default\" />\n ))}\n </Stack>\n </Stack>\n </Stack>\n </CardLargeStyled>\n )\n}\n","import styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { forcedColors } from '../../../lib/styleUtils'\n\nexport type SelectableInputState = 'default' | 'error' | 'disabled'\n\ninterface StyledCheckboxInputProps {\n $state: SelectableInputState\n $checked: boolean\n $indeterminate?: boolean\n}\n\n/**\n * Hidden native checkbox input for accessibility\n * Maintains keyboard navigation and screen reader support\n */\nexport const HiddenCheckboxInput = styled.input.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<StyledCheckboxInputProps>`\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n pointer-events: none;\n`\n\n/**\n * Custom checkbox visual component\n * 24px × 24px for 8px grid alignment\n * Uses component.input.* tokens for consistency with TextField\n */\nexport const StyledCheckbox = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<StyledCheckboxInputProps>`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${tokens.component.checkbox.box.size};\n height: ${tokens.component.checkbox.box.size};\n min-width: ${tokens.component.checkbox.box.size};\n min-height: ${tokens.component.checkbox.box.size};\n border-radius: ${tokens.component.checkbox.box.borderRadius};\n border: ${tokens.component.input.default.borderWidth} solid;\n background-color: ${(props) =>\n props.$checked || props.$indeterminate\n ? tokens.semantic.color.fill.inverse\n : tokens.component.input.default.backgroundColor};\n border-color: ${(props) => {\n if (props.$state === 'error') return tokens.component.input.error.borderColor\n // A checked box's border matches its fill, so the box reads as solid\n if (props.$checked || props.$indeterminate)\n return tokens.semantic.color.fill.inverse\n return tokens.component.input.default.borderColor\n }};\n cursor: ${(props) => (props.$state === 'disabled' ? 'not-allowed' : 'pointer')};\n transition: background-color ${tokens.semantic.motion.duration.fast} ${tokens.semantic.motion.easing.decelerate},\n border-color ${tokens.semantic.motion.duration.fast} ${tokens.semantic.motion.easing.decelerate},\n ${tokens.semantic.motion.transition.focus};\n flex-shrink: 0;\n\n /* Hover state */\n ${HiddenCheckboxInput}:not(:disabled):hover + & {\n border-color: ${(props) =>\n props.$state === 'error'\n ? tokens.component.input.error.hover.borderColor\n : props.$checked || props.$indeterminate\n ? tokens.semantic.color.fill.inverse\n : tokens.component.input.hover.borderColor};\n }\n\n /* Focus state */\n ${HiddenCheckboxInput}:focus-visible + & {\n outline: ${tokens.component.input.focus.outline};\n outline-offset: ${tokens.semantic.border.focusOffset};\n border-color: ${(props) =>\n props.$state === 'error'\n ? tokens.component.input.error.focus.borderColor\n : tokens.component.input.focus.borderColor};\n }\n\n /* Disabled state */\n ${(props) =>\n props.$state === 'disabled' &&\n `\n background-color: ${tokens.component.input.disabled.backgroundColor};\n border-color: ${tokens.component.input.disabled.borderColor};\n `}\n\n /* Checkmark icon */\n &::after {\n content: '';\n position: absolute;\n display: ${(props) => (props.$checked ? 'block' : 'none')};\n left: 6px;\n top: 3px;\n width: 4px;\n height: 8px;\n border: solid ${tokens.semantic.color.text.inverse};\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n }\n\n /* Indeterminate icon (horizontal line) */\n &::before {\n content: '';\n position: absolute;\n display: ${(props) => (props.$indeterminate ? 'block' : 'none')};\n left: 4px;\n top: 8px;\n width: 10px;\n height: 2px;\n background-color: ${tokens.semantic.color.text.inverse};\n }\n\n /* Forced colours drop fills (decision 0038): a checked or indeterminate box takes the system\n selection colour, or GrayText when disabled, and its mark the matching text colour. The\n indeterminate dash is a fill, so it needs the same treatment. */\n ${(props) => {\n const on = props.$checked || props.$indeterminate\n const disabled = props.$state === 'disabled'\n if (!on) return disabled ? `${forcedColors} { border-color: GrayText; }` : ''\n const fill = disabled ? 'GrayText' : 'Highlight'\n const mark = disabled ? 'Canvas' : 'HighlightText'\n return `${forcedColors} {\n forced-color-adjust: none;\n background-color: ${fill};\n border-color: ${fill};\n &::after { border-color: ${mark}; }\n &::before { background-color: ${mark}; }\n }`\n }}\n`\n\n/**\n * Container for checkbox with proper spacing and alignment\n * 48px min-height for touch target (8px grid aligned)\n */\nexport const StyledCheckboxContainer = styled.label.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $disabled: boolean; $labelPosition: 'left' | 'right' }>`\n display: inline-flex;\n align-items: center;\n gap: ${tokens.semantic.space[300]};\n cursor: ${(props) => (props.$disabled ? 'not-allowed' : 'pointer')};\n min-height: ${tokens.component.checkbox.row.minHeight};\n flex-direction: ${(props) => (props.$labelPosition === 'left' ? 'row-reverse' : 'row')};\n user-select: none;\n`\n\n/**\n * Label text with proper typography\n */\nexport const StyledCheckboxLabel = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $disabled: boolean }>`\n font: ${tokens.component.input.default.font};\n color: ${(props) =>\n props.$disabled\n ? tokens.component.input.disabled.textColor\n : tokens.component.input.default.textColor};\n`\n","import React, { forwardRef, useId, InputHTMLAttributes } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport {\n HiddenCheckboxInput,\n StyledCheckbox,\n StyledCheckboxContainer,\n StyledCheckboxLabel,\n type SelectableInputState,\n} from './SelectableInputBase'\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n /**\n * The label text for the checkbox\n */\n label: string\n /**\n * Whether the checkbox is checked\n */\n checked?: boolean\n /**\n * Whether the checkbox is in an indeterminate state\n * Useful for \"select all\" scenarios where some but not all items are selected\n */\n indeterminate?: boolean\n /**\n * Position of the label relative to the checkbox\n * @default 'right'\n */\n labelPosition?: 'left' | 'right'\n /**\n * Helper text displayed below the checkbox\n */\n helperText?: string\n /**\n * Error message to display. When provided, checkbox enters error state\n */\n error?: string\n /**\n * Whether the checkbox is disabled\n */\n disabled?: boolean\n /**\n * Callback fired when the checkbox state changes\n */\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * Additional ARIA description for accessibility\n */\n 'aria-describedby'?: string\n}\n\nconst StyledFieldContainer = styled.div`\n display: inline-flex;\n flex-direction: column;\n gap: ${tokens.semantic.space[100]};\n`\n\nconst StyledHelperText = styled.span<{ $error?: boolean }>`\n font: ${tokens.component.field.helperText.typography};\n color: ${(props) =>\n props.$error\n ? tokens.component.field.helperText.colorError\n : tokens.component.field.helperText.color};\n margin-left: ${tokens.semantic.space[900]}; /* Align with label text after checkbox */\n display: block;\n`\n\n/**\n * Checkbox component for binary selection with WCAG 2.2 AA compliance\n *\n * Features:\n * - Custom styled checkbox with clear visual states\n * - Integrated label with configurable positioning\n * - Helper text and error messaging\n * - Indeterminate state support\n * - Full keyboard navigation (Space to toggle)\n * - ARIA attributes for screen readers\n * - 8px grid aligned (48px touch target)\n *\n * @example\n * ```tsx\n * <Checkbox\n * label=\"Accept terms and conditions\"\n * checked={accepted}\n * onChange={(e) => setAccepted(e.target.checked)}\n * required\n * />\n * ```\n */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n label,\n checked = false,\n indeterminate = false,\n labelPosition = 'right',\n helperText,\n error,\n disabled = false,\n onChange,\n id: providedId,\n 'aria-describedby': ariaDescribedby,\n ...rest\n },\n ref\n ) => {\n const generatedId = useId()\n const id = providedId || generatedId\n const helperTextId = `${id}-helper-text`\n const errorId = `${id}-error`\n\n // Determine the state for styling\n const state: SelectableInputState = disabled ? 'disabled' : error ? 'error' : 'default'\n\n // Set up ARIA describedby\n const describedBy = [\n ariaDescribedby,\n helperText ? helperTextId : undefined,\n error ? errorId : undefined,\n ]\n .filter(Boolean)\n .join(' ')\n\n // Update indeterminate property on the input element\n const inputRef = React.useRef<HTMLInputElement>(null)\n React.useImperativeHandle(ref, () => inputRef.current!)\n\n React.useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate])\n\n return (\n <StyledFieldContainer>\n <StyledCheckboxContainer $disabled={disabled} $labelPosition={labelPosition}>\n <HiddenCheckboxInput\n ref={inputRef}\n type=\"checkbox\"\n id={id}\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n aria-describedby={describedBy || undefined}\n aria-invalid={error ? true : undefined}\n $state={state}\n $checked={checked}\n $indeterminate={indeterminate}\n {...rest}\n />\n <StyledCheckbox\n $state={state}\n $checked={checked}\n $indeterminate={indeterminate}\n aria-hidden=\"true\"\n />\n <StyledCheckboxLabel $disabled={disabled}>{label}</StyledCheckboxLabel>\n </StyledCheckboxContainer>\n\n {helperText && !error && (\n <StyledHelperText id={helperTextId}>{helperText}</StyledHelperText>\n )}\n\n {error && (\n <StyledHelperText id={errorId} $error role=\"alert\" aria-live=\"polite\">\n {error}\n </StyledHelperText>\n )}\n </StyledFieldContainer>\n )\n }\n)\n\nCheckbox.displayName = 'Checkbox'\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Chip, Stack } from '@/components/atoms'\n\nexport type ChipGroupProps = {\n labels: string[]\n 'data-testid'?: string\n}\n\nconst ChipGroupWrapper = styled.div`\n > div {\n display: flex;\n flex-wrap: wrap;\n }\n`\n\nexport const ChipGroup: React.FC<ChipGroupProps> = ({ \n labels, \n 'data-testid': dataTestId \n}) => {\n return (\n <ChipGroupWrapper data-testid={dataTestId}>\n <Stack direction=\"row\" gap=\"sm\">\n {labels && labels.map((title, index) => (\n <Chip key={index} title={title} />\n ))}\n </Stack>\n </ChipGroupWrapper>\n )\n}\n","import React, { useState, useRef, useEffect } from 'react'\nimport styled from 'styled-components'\nimport { Button } from '../../atoms/Button'\nimport tokens from '@/lib/cssTokens'\nimport { reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\n\nconst { semantic: { color, border, motion } } = tokens\n\nexport interface CodeBlockProps {\n children: string\n showCopyButton?: boolean\n onCopy?: () => void\n /**\n * Maximum height in pixels before content is collapsed.\n * When set, enables expand/collapse functionality.\n */\n maxHeight?: number\n /**\n * Initial expanded state when maxHeight is set.\n * @default false\n */\n defaultExpanded?: boolean\n 'data-testid'?: string\n}\n\ninterface StyledCodeBlockProps {\n $maxHeight?: number\n $isExpanded: boolean\n $needsExpansion: boolean\n}\n\nconst StyledCodeBlock = styled.pre<StyledCodeBlockProps>`\n background-color: ${tokens.semantic.surface.raised};\n border: ${border.default};\n border-radius: ${tokens.semantic.radius.sm};\n padding: ${tokens.semantic.space[300]};\n font-family: ${tokens.component.codeBlock.fontFamily};\n font-size: ${tokens.component.codeBlock.fontSize};\n line-height: ${tokens.component.codeBlock.lineHeight};\n color: ${color.text.default};\n overflow-x: auto;\n overflow-y: ${({ $isExpanded, $needsExpansion }) => \n $needsExpansion && !$isExpanded ? 'hidden' : 'auto'};\n margin: ${tokens.semantic.space[200]} 0;\n position: relative;\n transition: max-height ${motion.duration.slow} ${motion.easing.standard};\n\n ${reducedMotion} {\n transition: none;\n }\n \n ${({ $maxHeight, $isExpanded, $needsExpansion }) => {\n if (!$maxHeight || !$needsExpansion) return ''\n // Use a large value when expanded to allow smooth transition\n // 10000px is effectively \"no limit\" for most code blocks\n return $isExpanded \n ? 'max-height: 10000px;'\n : `max-height: ${$maxHeight}px;`\n }}\n\n /* The block is focusable so keyboard users can scroll it; it shows the system focus ring\n (decision 0029) */\n &:focus-visible {\n outline: ${border.focus};\n outline-offset: ${border.focusOffset};\n }\n`\n\nconst CodeBlockWrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n`\n\nconst CopyButtonWrapper = styled.div`\n position: absolute;\n bottom: ${tokens.semantic.space[400]};\n right: ${tokens.semantic.space[200]};\n`\n\nconst ExpandButtonWrapper = styled.div<{ $hasGradient: boolean }>`\n display: flex;\n justify-content: center;\n padding: ${tokens.semantic.space[200]} 0;\n position: absolute;\n bottom: ${tokens.semantic.border.width.thin};\n left: ${tokens.semantic.border.width.thin};\n right: ${tokens.semantic.border.width.thin};\n width: calc(100% - 2 * ${tokens.semantic.border.width.thin});\n margin-bottom: ${tokens.semantic.space[200]};\n border-radius: ${tokens.semantic.radius.sm};\n transition: opacity ${motion.duration.slow} ${motion.easing.standard}, background ${motion.duration.slow} ${motion.easing.standard};\n \n ${({ $hasGradient }) => $hasGradient ? `\n margin-top: calc(-1 * ${tokens.semantic.space[800]});\n padding-top: ${tokens.semantic.space[800]};\n background: linear-gradient(\n to bottom,\n transparent 0%,\n ${tokens.semantic.surface.raised} 60%\n );\n ` : `\n background: transparent;\n `}\n`\n\nconst CopyButton: React.FC<{ text: string; onCopy?: () => void }> = ({ text, onCopy }) => {\n const [copied, setCopied] = useState(false)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n \n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(text)\n setCopied(true)\n onCopy?.()\n \n // Clear any existing timeout\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n \n // Set new timeout\n timeoutRef.current = setTimeout(() => {\n setCopied(false)\n timeoutRef.current = null\n }, 2000)\n } catch (err) {\n console.error('Failed to copy text: ', err)\n }\n }\n \n // Cleanup timeout on unmount\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n \n return (\n <CopyButtonWrapper>\n <Button \n variant=\"secondary\" \n size=\"small\" \n iconName=\"copy\"\n onClick={handleCopy}\n data-testid=\"copy-button\"\n >\n {copied ? 'Copied!' : 'Copy'}\n </Button>\n </CopyButtonWrapper>\n )\n}\n\nconst LiveRegion = styled.span`\n ${visuallyHidden}\n`\n\n/**\n * CodeBlock component for displaying formatted code with optional copy functionality\n * and expandable content for long code blocks.\n * \n * @param children - The code content to display\n * @param showCopyButton - Whether to show the copy button (default: true)\n * @param onCopy - Optional callback when code is copied\n * @param maxHeight - Maximum height in pixels before enabling expand/collapse\n * @param defaultExpanded - Initial expanded state when maxHeight is set\n * @param data-testid - Test identifier for the code block\n * \n * @example\n * ```tsx\n * // Basic usage\n * <CodeBlock>const x = 1;</CodeBlock>\n * \n * // With max height and expand/collapse\n * <CodeBlock maxHeight={200}>\n * {longCodeString}\n * </CodeBlock>\n * \n * // Start expanded\n * <CodeBlock maxHeight={200} defaultExpanded>\n * {longCodeString}\n * </CodeBlock>\n * ```\n */\nexport const CodeBlock: React.FC<CodeBlockProps> = ({ \n children, \n showCopyButton = true, \n onCopy,\n maxHeight,\n defaultExpanded = false,\n 'data-testid': testId \n}) => {\n const [isExpanded, setIsExpanded] = useState(defaultExpanded)\n const [needsExpansion, setNeedsExpansion] = useState(false)\n const [announcement, setAnnouncement] = useState('')\n const contentRef = useRef<HTMLPreElement>(null)\n \n // Check if content exceeds maxHeight\n useEffect(() => {\n if (maxHeight && contentRef.current) {\n const scrollHeight = contentRef.current.scrollHeight\n setNeedsExpansion(scrollHeight > maxHeight)\n }\n }, [children, maxHeight])\n \n const handleToggleExpand = () => {\n setIsExpanded(prev => !prev)\n // Announce state change to screen readers\n setAnnouncement(isExpanded ? 'Code block collapsed' : 'Code block expanded')\n }\n \n const showExpandButton = maxHeight && needsExpansion\n \n return (\n <CodeBlockWrapper>\n <StyledCodeBlock \n ref={contentRef}\n data-testid={testId}\n $maxHeight={maxHeight}\n $isExpanded={isExpanded}\n $needsExpansion={needsExpansion}\n aria-expanded={showExpandButton ? isExpanded : undefined}\n tabIndex={0}\n >\n {children}\n </StyledCodeBlock>\n \n {showExpandButton && (\n <ExpandButtonWrapper $hasGradient={!isExpanded}>\n <Button \n variant=\"secondary\" \n size=\"small\"\n iconName={isExpanded ? 'caretUp' : 'caretDown'}\n onClick={handleToggleExpand}\n aria-expanded={isExpanded}\n aria-controls={testId}\n data-testid=\"expand-button\"\n >\n {isExpanded ? 'Show less' : 'Show more'}\n </Button>\n </ExpandButtonWrapper>\n )}\n \n {showExpandButton && (\n <LiveRegion aria-live=\"polite\" aria-atomic=\"true\">\n {announcement}\n </LiveRegion>\n )}\n \n {showCopyButton && (\n <CopyButton text={children} onCopy={onCopy} />\n )}\n </CodeBlockWrapper>\n )\n}\n\nexport default CodeBlock\n","import React from 'react'\nimport styled from 'styled-components'\nimport { DateFormatter, DateFormatMode } from '../../atoms/DateFormatter'\nimport { MoneyDisplay, MoneyDisplayVariant } from '../../atoms/MoneyDisplay'\nimport { Stack } from '../../atoms/Stack'\nimport { Typography } from '../../atoms/Typography'\nimport tokens from '../../../lib/cssTokens'\n\nexport interface DateGroupProps {\n /** The date for this group (used for formatting the header) */\n date: Date | string\n \n /** Children to render under the date header (typically transactions) */\n children: React.ReactNode\n \n /**\n * Format mode for the date header, passed to DateFormatter's `mode`.\n */\n format?: DateFormatMode\n \n /** Whether to show total amount for this date group */\n showTotal?: boolean\n \n /** Total amount for this date group (shown if showTotal is true) */\n totalAmount?: number\n \n /** Whether to show count of items in this group */\n showCount?: boolean\n \n /** Count of items in this group (shown if showCount is true) */\n count?: number\n \n /** Whether to make the header sticky (useful for scrolling lists) */\n sticky?: boolean\n \n /** Currency for total amount display */\n currency?: string\n \n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\ninterface StyledHeaderProps {\n $sticky?: boolean\n}\n\nconst StyledHeader = styled.div<StyledHeaderProps>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ${tokens.semantic.space[300]} ${tokens.semantic.space[200]};\n background-color: ${tokens.semantic.surface.base};\n border-bottom: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border.default};\n \n ${({ $sticky }) => $sticky && `\n position: sticky;\n top: 0;\n z-index: ${tokens.semantic.layer.sticky};\n box-shadow: ${tokens.semantic.elevation.sticky};\n `}\n`\n\nconst StyledLeftSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.space[200]};\n`\n\nconst StyledRightSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.space[300]};\n`\n\nconst StyledContent = styled.div`\n /* Content area for children */\n`\n\n/**\n * DateGroup component\n * \n * Groups related content (typically transactions) under a formatted date header\n * with optional total amount and item count displays. Supports sticky headers\n * for scrolling lists.\n * \n * Composes: DateFormatter, MoneyDisplay, Stack, Typography\n */\nexport const DateGroup: React.FC<DateGroupProps> = ({\n date,\n children,\n format = 'smart',\n showTotal = false,\n totalAmount,\n showCount = false,\n count,\n sticky = false,\n currency = 'AUD',\n 'data-testid': dataTestId\n}) => {\n // Determine total variant based on amount (positive = income, negative = expense)\n const totalVariant: MoneyDisplayVariant = totalAmount && totalAmount !== 0\n ? totalAmount > 0 ? 'positive' : 'negative'\n : 'default'\n\n return (\n <div data-testid={dataTestId} role=\"group\" aria-label={`Transactions for ${date}`}>\n <StyledHeader $sticky={sticky} data-testid={dataTestId ? `${dataTestId}-header` : undefined}>\n <StyledLeftSection>\n <DateFormatter \n dateString={typeof date === 'string' ? date : date.toISOString()} \n mode={format}\n data-testid={dataTestId ? `${dataTestId}-date` : undefined}\n />\n {showCount && count !== undefined && (\n <Typography \n variant=\"caption\" \n color=\"subdued\"\n data-testid={dataTestId ? `${dataTestId}-count` : undefined}\n >\n ({count} {count === 1 ? 'item' : 'items'})\n </Typography>\n )}\n </StyledLeftSection>\n \n <StyledRightSection>\n {showTotal && totalAmount !== undefined && (\n <MoneyDisplay\n amount={totalAmount}\n currency={currency}\n variant={totalVariant}\n size=\"small\"\n weight=\"medium\"\n showSign\n data-testid={dataTestId ? `${dataTestId}-total` : undefined}\n />\n )}\n </StyledRightSection>\n </StyledHeader>\n \n <StyledContent data-testid={dataTestId ? `${dataTestId}-content` : undefined}>\n {children}\n </StyledContent>\n </div>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { Stack } from '../../atoms/Stack'\nimport { Box } from '../../atoms/Box'\nimport { Typography } from '../../atoms/Typography'\nimport { Button } from '../../atoms/Button'\nimport { Icon } from '../../atoms/Icon'\nimport { type IconName } from '../../../types/icons'\n\nconst { semantic } = tokens\n\nexport type EmptyStateIllustration = 'search' | 'transactions' | 'notifications' | 'empty' | 'error' | 'custom'\nexport type EmptyStateVariant = 'default' | 'error' | 'success'\nexport type EmptyStateSize = 'small' | 'medium' | 'large'\n\nexport interface EmptyStateAction {\n label: string\n onClick: () => void\n variant?: 'primary' | 'secondary'\n icon?: IconName\n}\n\nexport interface EmptyStateProps {\n /** Predefined illustration type */\n illustration?: EmptyStateIllustration\n /** Custom illustration (SVG string or React node) */\n customIllustration?: React.ReactNode\n /** Main heading */\n title: string\n /** Descriptive text */\n description: string\n /** Primary call-to-action */\n action?: EmptyStateAction\n /** Secondary action */\n secondaryAction?: EmptyStateAction\n /** Visual variant */\n variant?: EmptyStateVariant\n /** Size of the component */\n size?: EmptyStateSize\n /** Data test id for testing */\n 'data-testid'?: string\n}\n\ninterface StyledContainerProps {\n $size: EmptyStateSize\n}\n\nconst StyledContainer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledContainerProps>`\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n max-width: ${tokens.component.emptyState.maxWidth};\n margin: 0 auto;\n padding: ${({ $size }) => \n $size === 'small' ? semantic.space[800] :\n $size === 'large' ? semantic.space[1400] :\n semantic.space[1000]\n };\n`\n\ninterface StyledIllustrationProps {\n $size: EmptyStateSize\n $variant: EmptyStateVariant\n}\n\nconst StyledIllustration = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledIllustrationProps>`\n width: ${({ $size }) =>\n $size === 'small' ? tokens.component.emptyState.illustration.small :\n $size === 'large' ? tokens.component.emptyState.illustration.large :\n tokens.component.emptyState.illustration.medium\n };\n height: ${({ $size }) =>\n $size === 'small' ? tokens.component.emptyState.illustration.small :\n $size === 'large' ? tokens.component.emptyState.illustration.large :\n tokens.component.emptyState.illustration.medium\n };\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: ${semantic.space[600]};\n color: ${({ $variant }) =>\n $variant === 'error' ? semantic.color.icon.danger :\n $variant === 'success' ? semantic.color.icon.success :\n semantic.color.icon.muted\n };\n`\n\nconst StyledTextContainer = styled.div`\n max-width: ${tokens.component.emptyState.text.maxWidth};\n margin-bottom: ${semantic.space[600]};\n`\n\n// Map illustration type to icon name\nconst illustrationToIcon: Record<Exclude<EmptyStateIllustration, 'custom'>, IconName> = {\n search: 'search',\n transactions: 'paper', // Placeholder - will use custom icon when available\n notifications: 'bell',\n empty: 'paper',\n error: 'crossCircle'\n}\n\nexport const EmptyState: React.FC<EmptyStateProps> = ({\n illustration = 'empty',\n customIllustration,\n title,\n description,\n action,\n secondaryAction,\n variant = 'default',\n size = 'medium',\n 'data-testid': dataTestId\n}) => {\n // Determine what to show for illustration\n const renderIllustration = () => {\n if (customIllustration) {\n return customIllustration\n }\n \n if (illustration !== 'custom') {\n const iconName = illustrationToIcon[illustration]\n return <Icon name={iconName} size=\"2xl\" />\n }\n \n return null\n }\n\n return (\n <StyledContainer \n $size={size}\n data-testid={dataTestId}\n role=\"status\"\n aria-label={`Empty state: ${title}`}\n >\n <StyledIllustration $size={size} $variant={variant} aria-hidden=\"true\">\n {renderIllustration()}\n </StyledIllustration>\n\n <StyledTextContainer>\n <Typography \n variant={size === 'small' ? 'h4' : size === 'large' ? 'h2' : 'h3'}\n color={variant === 'error' ? 'error' : 'default'}\n as={size === 'small' ? 'h4' : size === 'large' ? 'h2' : 'h3'}\n >\n {title}\n </Typography>\n \n <div style={{ marginTop: semantic.space[300] }}>\n <Typography variant=\"body\" color=\"subdued\">\n {description}\n </Typography>\n </div>\n </StyledTextContainer>\n\n {(action || secondaryAction) && (\n <Box width=\"100%\" maxWidth={tokens.component.emptyState.actions.maxWidth}>\n <Stack direction=\"column\" gap=\"sm\">\n {action && (\n <Button\n variant={action.variant || 'primary'}\n onClick={action.onClick}\n iconName={action.icon}\n data-testid={dataTestId ? `${dataTestId}-primary-action` : undefined}\n >\n {action.label}\n </Button>\n )}\n \n {secondaryAction && (\n <Button\n variant=\"naked\"\n onClick={secondaryAction.onClick}\n data-testid={dataTestId ? `${dataTestId}-secondary-action` : undefined}\n >\n {secondaryAction.label}\n </Button>\n )}\n </Stack>\n </Box>\n )}\n </StyledContainer>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Chip } from '../../atoms/Chip'\nimport { Button } from '../../atoms/Button'\nimport { Picture } from '../../atoms/Picture'\nimport { Divider } from '../../atoms/Divider'\nimport { Stack } from '../../atoms/Stack'\nimport { Typography } from '../../atoms/Typography'\nimport { DateFormatter } from '../../atoms/DateFormatter'\nimport tokens from '@/lib/cssTokens'\n\nconst { semantic: { space } } = tokens\n\nexport type FeatureBlockProps = {\n title: string\n excerpt: string\n labels: string[]\n coverImage: string\n date: string\n onReadMore?: () => void\n readMoreHref?: string\n readMoreText?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\nconst FeatureBlockStyled = styled.div`\n @media (min-width: ${tokens.semantic.breakpoint.md}) {\n display: grid;\n grid-template-columns: repeat(12, 1fr);\n }\n\n @media (min-width: ${tokens.semantic.breakpoint.lg}) {\n gap: ${space[1200]};\n }\n\n /* The image isn't clickable, so it doesn't answer hover (issue 185, P5) */\n img {\n border-radius: ${tokens.semantic.radius['2xl']};\n }\n\n a {\n text-decoration: none;\n }\n`\n\nconst ImageWrapper = styled.div`\n grid-column: span 12;\n\n @media (min-width: ${tokens.semantic.breakpoint.lg}) {\n grid-column: span 6;\n }\n`\n\nconst ContentSection = styled.div`\n grid-column: span 12;\n margin-top: ${space[600]};\n\n @media (min-width: ${tokens.semantic.breakpoint.lg}) {\n grid-column: span 6;\n margin-top: 0;\n padding-right: ${space[800]};\n }\n\n @media (min-width: ${tokens.semantic.breakpoint.xl}) {\n padding-right: ${space[2400]};\n }\n`\n\nconst ButtonWrapper = styled.div`\n button {\n margin-top: ${space[400]};\n }\n`\n\nconst ContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100%;\n`\n\n\n\nexport const FeatureBlock: React.FC<FeatureBlockProps> = ({\n title,\n excerpt,\n labels = [],\n coverImage,\n date,\n onReadMore,\n readMoreHref,\n readMoreText = \"Read more\",\n 'data-testid': dataTestId,\n}) => {\n return (\n <>\n <FeatureBlockStyled data-testid={dataTestId}>\n <ImageWrapper>\n <Picture title={title} src={coverImage} />\n </ImageWrapper>\n <ContentSection>\n <ContentWrapper>\n <Stack direction=\"column\" gap=\"md\">\n <Typography variant=\"h3\">{title}</Typography>\n <DateFormatter dateString={date} />\n <Typography variant=\"small\">{excerpt}</Typography>\n <Stack direction=\"row\" gap=\"xs\">\n {Array.isArray(labels) && labels.map((label, index) => (\n <Chip key={index} title={label} variant=\"default\" />\n ))}\n </Stack>\n {(onReadMore || readMoreHref) && (\n <ButtonWrapper>\n {readMoreHref ? (\n <Button purpose=\"link\" url={readMoreHref}>\n {readMoreText}\n </Button>\n ) : (\n <Button onClick={onReadMore}>\n {readMoreText}\n </Button>\n )}\n </ButtonWrapper>\n )}\n </Stack>\n </ContentWrapper>\n </ContentSection>\n </FeatureBlockStyled>\n <Divider />\n </>\n )\n}\n","import React, { useState, useRef, useEffect, useId } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { Icon } from '../../atoms/Icon'\nimport { Typography } from '../../atoms/Typography'\nimport { interactiveRow, reducedMotion } from '../../../lib/styleUtils'\n\nconst { semantic: { border, elevation, motion, space }, component: { input, field } } = tokens\n\n// Spacing comes from the semantic scales: no component spacing tokens (decision 0022).\n// The trigger and options take their height from size.control.lg as a minimum and centre\n// their content (decision 0034). The small vertical padding only matters when a long\n// label wraps; a single line is shorter than the minimum.\nconst controlPaddingX = tokens.semantic.space.inset.lg\nconst controlPaddingY = space[200]\nconst controlHeight = tokens.semantic.size.control.lg\nconst { duration, easing } = motion\n\ninterface DropdownOption {\n id: string\n label: string\n value?: any\n}\n\nexport interface DropdownProps {\n options: DropdownOption[]\n value: string\n onChange: (value: string) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n label?: string\n helperText?: string\n error?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\nconst DropdownContainer = styled.div`\n position: relative;\n width: 100%;\n`\n\nconst DropdownTrigger = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isOpen: boolean; $hasError?: boolean }>`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box; /* the min-height includes the border, without relying on a global reset */\n min-height: ${controlHeight};\n padding: ${controlPaddingY} ${controlPaddingX};\n background-color: ${input.default.backgroundColor};\n border: ${input.default.borderWidth} solid ${({ $hasError }) =>\n $hasError ? input.error.borderColor : input.default.borderColor\n };\n border-radius: ${input.default.borderRadius};\n font: ${input.default.font};\n color: ${input.default.textColor};\n cursor: pointer;\n transition: border-color ${duration.moderate} ${easing.standard},\n outline ${duration.moderate} ${easing.standard};\n \n &:hover:not(:disabled) {\n border-color: ${({ $hasError }) =>\n $hasError ? input.error.hover.borderColor : input.hover.borderColor\n };\n }\n \n &:focus {\n border-color: ${({ $hasError }) =>\n $hasError ? input.error.focus.borderColor : input.focus.borderColor\n };\n outline: ${input.focus.outline};\n outline-offset: ${border.focusOffset};\n }\n \n &:disabled {\n background-color: ${input.disabled.backgroundColor};\n color: ${input.disabled.textColor};\n border-color: ${input.disabled.borderColor};\n cursor: not-allowed;\n }\n \n ${({ $isOpen, $hasError }) => $isOpen && `\n border-color: ${$hasError ? input.error.focus.borderColor : input.focus.borderColor};\n `}\n`\n\nconst DropdownIcon = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isOpen: boolean }>`\n display: flex;\n align-items: center;\n margin-left: ${space[200]};\n transition: transform ${duration.fast} ${easing.decelerate};\n \n ${({ $isOpen }) => $isOpen && `\n transform: rotate(180deg);\n `}\n\n ${reducedMotion} {\n transition: none;\n }\n`\n\nconst DropdownMenu = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isOpen: boolean }>`\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: ${tokens.semantic.layer.dropdown};\n /* A floating layer: one step above raised content in the dark theme (issue 356) */\n background-color: ${tokens.semantic.surface.overlay};\n /* A decorative outline: elevation separates the menu, and only the trigger is a control edge (decision 0025) */\n border: ${border.default};\n /* The panel radius Menu and SearchField share, not the control token (decision 0055) */\n border-radius: ${tokens.semantic.radius.md};\n box-shadow: ${elevation.floating};\n margin-top: ${space[100]};\n overflow: hidden;\n opacity: ${({ $isOpen }) => ($isOpen ? 1 : 0)};\n visibility: ${({ $isOpen }) => ($isOpen ? 'visible' : 'hidden')};\n transform: ${({ $isOpen }) => ($isOpen ? 'translateY(0)' : `translateY(calc(-1 * ${tokens.semantic.motion.distance.sm}))`)};\n transition: opacity ${duration.fast} ${easing.decelerate},\n visibility ${duration.fast} ${easing.decelerate},\n transform ${duration.fast} ${easing.decelerate};\n max-height: ${tokens.semantic.size.menu.maxHeight};\n overflow-y: auto;\n\n ${reducedMotion} {\n transform: none;\n }\n`\n\nconst DropdownOption = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isSelected: boolean; $isFocused: boolean }>`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${space[200]};\n box-sizing: border-box; /* the min-height includes the border, without relying on a global reset */\n min-height: ${controlHeight};\n padding: ${controlPaddingY} ${controlPaddingX};\n border: none;\n font: ${input.default.font};\n color: ${input.default.textColor};\n text-align: left;\n cursor: pointer;\n transition: background-color ${duration.fast} ${easing.decelerate}, color ${duration.fast} ${easing.decelerate};\n\n /* The shared row states (decisions 0029, 0030): focus shows the hover state in grey; only the\n selected option is light blue, with its text darkening with the fill */\n ${({ $isSelected, $isFocused }) => interactiveRow({ selected: $isSelected, focused: $isFocused })}\n \n &:focus {\n outline: none;\n }\n \n &:not(:last-child) {\n border-bottom: ${border.default};\n }\n`\n\nconst StyledHelperText = styled.div<{ $hasError?: boolean }>`\n font: ${field.helperText.typography};\n color: ${({ $hasError }) =>\n $hasError\n ? field.helperText.colorError\n : field.helperText.color\n };\n margin-top: ${space[200]};\n`\n\n\nexport const Dropdown: React.FC<DropdownProps> = ({\n options,\n value,\n onChange,\n placeholder = 'Select an option',\n disabled = false,\n className,\n label,\n helperText,\n error,\n 'data-testid': dataTestId\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n const [focusedIndex, setFocusedIndex] = useState(-1)\n const dropdownRef = useRef<HTMLDivElement>(null)\n \n // Generate unique ID for accessibility (SSR-safe)\n const dropdownId = useId()\n \n const selectedOption = options.find(option => option.id === value)\n \n const hasError = Boolean(error)\n const errorId = error ? `${dropdownId}-error` : undefined\n const helperId = helperText && !error ? `${dropdownId}-helper` : undefined\n const describedBy = [errorId, helperId].filter(Boolean).join(' ') || undefined\n\n \n // Close dropdown when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false)\n }\n }\n \n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }, [])\n \n // Close dropdown on escape key and handle arrow navigation\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (!isOpen) return\n\n switch (event.key) {\n case 'Escape':\n setIsOpen(false)\n setFocusedIndex(-1)\n // Return focus to trigger button\n if (dropdownRef.current) {\n const trigger = dropdownRef.current.querySelector('button') as HTMLButtonElement\n trigger?.focus()\n }\n break\n \n case 'ArrowDown':\n event.preventDefault()\n setFocusedIndex(prev => {\n const newIndex = prev < options.length - 1 ? prev + 1 : 0\n return newIndex\n })\n break\n \n case 'ArrowUp':\n event.preventDefault()\n setFocusedIndex(prev => {\n const newIndex = prev > 0 ? prev - 1 : options.length - 1\n return newIndex\n })\n break\n \n case 'Enter':\n case ' ':\n event.preventDefault()\n if (focusedIndex >= 0 && focusedIndex < options.length) {\n handleOptionClick(options[focusedIndex].id)\n }\n break\n \n case 'Home':\n event.preventDefault()\n setFocusedIndex(0)\n break\n \n case 'End':\n event.preventDefault()\n setFocusedIndex(options.length - 1)\n break\n }\n }\n \n if (isOpen) {\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }\n \n return undefined\n }, [isOpen, focusedIndex, options])\n \n const handleTriggerClick = () => {\n if (!disabled) {\n setIsOpen(!isOpen)\n if (!isOpen) {\n // When opening, set focus to the currently selected option or first option\n const selectedIndex = options.findIndex(option => option.id === value)\n setFocusedIndex(selectedIndex >= 0 ? selectedIndex : 0)\n } else {\n // When closing, reset focus\n setFocusedIndex(-1)\n }\n }\n }\n \n const handleOptionClick = (optionId: string) => {\n onChange(optionId)\n setIsOpen(false)\n setFocusedIndex(-1)\n }\n \n return (\n <DropdownContainer ref={dropdownRef} className={className} data-testid={dataTestId}>\n {label && (\n <label htmlFor={dropdownId} style={{ display: 'block', marginBottom: space[200] }}>\n <Typography variant=\"label\">{label}</Typography>\n </label>\n )}\n <DropdownTrigger\n id={dropdownId}\n $isOpen={isOpen}\n $hasError={hasError}\n onClick={handleTriggerClick}\n disabled={disabled}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-invalid={hasError}\n aria-describedby={describedBy}\n >\n <span>{selectedOption ? selectedOption.label : placeholder}</span>\n <DropdownIcon $isOpen={isOpen}>\n <Icon name=\"arrowDown\" iconColor={disabled ? 'disabled' : 'subdued'} />\n </DropdownIcon>\n </DropdownTrigger>\n \n <DropdownMenu $isOpen={isOpen} role=\"listbox\" aria-labelledby={dropdownId}>{options.map((option, index) => (\n <DropdownOption\n key={option.id}\n $isSelected={option.id === value}\n $isFocused={index === focusedIndex}\n onClick={() => handleOptionClick(option.id)}\n role=\"option\"\n aria-selected={option.id === value}\n >\n {option.label}\n {/* The selected state isn't conveyed by colour alone (P2); aria-selected carries it for\n assistive technology, so the checkmark is decorative */}\n {option.id === value && <Icon name=\"check\" size=\"sm\" iconColor=\"inherit\" />}\n </DropdownOption>\n ))}\n </DropdownMenu>\n \n {error && (\n <StyledHelperText\n id={errorId}\n role=\"alert\"\n aria-live=\"polite\"\n $hasError={true}\n >\n {error}\n </StyledHelperText>\n )}\n \n {helperText && !error && (\n <StyledHelperText id={helperId}>\n {helperText}\n </StyledHelperText>\n )}\n </DropdownContainer>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { ListSpacingContext, type ListSpacing } from './ListContext'\n\nconst { semantic } = tokens\n\nexport interface ListProps {\n /**\n * ListItem components\n */\n children: React.ReactNode\n \n /**\n * Show dividers between items\n * @default true\n */\n dividers?: boolean\n \n /**\n * Density of the list's items: their padding. A ListItem's own `spacing` overrides it (#77).\n * @default 'comfortable'\n * @deprecated Set density on a region with `data-co-density` instead: rows follow it (P9,\n * decision 0051). `spacing` still sets the padding, but not the height, until it's removed in 4.0.\n */\n spacing?: ListSpacing\n \n /**\n * Additional CSS class name\n */\n className?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\nconst StyledList = styled.ul.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $dividers: boolean\n}>`\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n \n /* Divider styles */\n ${({ $dividers }) => $dividers && `\n > li:not(:last-child) {\n border-bottom: ${semantic.border.width.thin} solid ${semantic.color.border.default};\n }\n `}\n`\n\nexport const List = ({\n children,\n dividers = true,\n spacing = 'comfortable',\n className,\n 'data-testid': dataTestId,\n ...props\n}: ListProps) => {\n return (\n <ListSpacingContext.Provider value={spacing}>\n <StyledList\n $dividers={dividers}\n className={className}\n data-testid={dataTestId}\n role=\"list\"\n {...props}\n >\n {children}\n </StyledList>\n </ListSpacingContext.Provider>\n )\n}\n\nList.displayName = 'List'\n","import React, { createContext, useCallback, useContext, useEffect, useId, useRef, useState } from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { exitAnimation, forcedColorsEdge, interactiveRow, reducedMotion } from '../../../lib/styleUtils'\nimport { usePresence } from '../../../lib/usePresence'\nimport { laidOutElement, type FloatingAlign, type FloatingSide } from '../../../lib/floatingPosition'\nimport { ANCHOR_WIDTH_VAR, useFloatingLayer, useIsomorphicLayoutEffect } from '../../../lib/useFloatingLayer'\nimport { Icon } from '../../atoms/Icon'\n\nconst { semantic } = tokens\nconst { space, color, motion, radius, size, elevation, border, typography } = semantic\n\n// Typeahead keeps typed characters together for this long. An input timing, not a motion value.\nconst TYPEAHEAD_RESET_MS = 500\n\nconst ITEM_SELECTOR = '[role=\"menuitem\"], [role=\"menuitemradio\"], [role=\"menuitemcheckbox\"]'\n\ninterface MenuContextValue {\n close: (options?: { returnFocus?: boolean }) => void\n}\n\nconst MenuContext = createContext<MenuContextValue | null>(null)\n\nconst useMenu = (component: string) => {\n const context = useContext(MenuContext)\n if (!context) throw new Error(`${component} must be used inside a Menu`)\n return context\n}\n\nexport type MenuSide = FloatingSide\nexport type MenuAlign = FloatingAlign\n\nexport interface MenuProps {\n /**\n * The element that opens the menu, such as a Button or IconButton. Menu gives it\n * `aria-haspopup`, `aria-expanded` and `aria-controls`, and the menu takes its name from it.\n */\n trigger: React.ReactElement\n /** `MenuItem`, `MenuItemRadio`, `MenuItemCheckbox`, `MenuGroup` and `MenuDivider` */\n children: React.ReactNode\n /** Whether the menu is open (controlled). Use with `onOpenChange`. */\n open?: boolean\n /**\n * Whether the menu starts open (uncontrolled).\n * @default false\n */\n defaultOpen?: boolean\n /** Called when the menu opens or closes */\n onOpenChange?: (open: boolean) => void\n /**\n * The side of the trigger it opens on. It flips when there's no room.\n * @default 'bottom'\n */\n side?: MenuSide\n /**\n * Where it lines up along the trigger's edge.\n * @default 'start'\n */\n align?: MenuAlign\n /**\n * Makes the menu at least as wide as its trigger, for a full-width trigger such as\n * WorkspaceSwitcher's, so the two line up. It still grows with its content, up to the usual\n * maximum, and never goes below the usual minimum for a small trigger.\n * @default false\n */\n matchTriggerWidth?: boolean\n /** Test identifier for the menu */\n 'data-testid'?: string\n}\n\nconst enter = keyframes`\n from {\n opacity: 0;\n transform: translateY(calc(-1 * ${motion.distance.sm}));\n }\n`\n\nconst fade = keyframes`\n from { opacity: 0; }\n`\n\n// Dropdown's panel (P5): the raised surface with a decorative outline and floating elevation,\n// dropping in over duration.fast (0037); under reduced motion it only fades (0015)\nconst Panel = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $exiting: boolean }>`\n position: fixed;\n inset: auto;\n top: 0;\n left: 0;\n margin: 0;\n box-sizing: border-box;\n /* At least the trigger's width when matchTriggerWidth sets the variable, within the usual range */\n min-width: min(max(${size[4500]}, var(${ANCHOR_WIDTH_VAR}, 0px)), ${size[7500]});\n max-width: ${size[7500]};\n max-height: ${size.menu.maxHeight};\n overflow-y: auto;\n padding: ${space[100]} 0;\n background-color: ${semantic.surface.overlay};\n color: ${color.text.default};\n border: ${border.default};\n border-radius: ${radius.md};\n box-shadow: ${elevation.floating};\n animation: ${enter} ${motion.duration.fast} ${motion.easing.decelerate}\n ${({ $exiting }) => ($exiting ? exitAnimation : css``)};\n\n ${reducedMotion} {\n animation: ${fade} ${motion.duration.fast} ${motion.easing.decelerate}\n ${({ $exiting }) => ($exiting ? exitAnimation : css``)};\n }\n\n ${forcedColorsEdge}\n\n &:focus {\n outline: none;\n }\n`\n\n// The trigger's wrapper takes no box of its own\nconst Anchor = styled.span`\n display: contents;\n`\n\nconst focusItem = (menu: HTMLElement | null, which: 'first' | 'last') => {\n const items = menu ? Array.from(menu.querySelectorAll<HTMLElement>(ITEM_SELECTOR)) : []\n ;(which === 'first' ? items[0] : items[items.length - 1])?.focus()\n}\n\n/**\n * A menu of actions and choices that opens from a trigger (#329), following the WAI-ARIA menu\n * button pattern. Not a select: for choosing a form value, use Dropdown.\n */\nexport const Menu = ({\n trigger,\n children,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n side = 'bottom',\n align = 'start',\n matchTriggerWidth = false,\n 'data-testid': dataTestId,\n}: MenuProps) => {\n const menuId = useId()\n const triggerId = useId()\n const anchorRef = useRef<HTMLSpanElement>(null)\n const panelRef = useRef<HTMLDivElement>(null)\n // Which item to focus once the menu has opened\n const initialFocus = useRef<'first' | 'last'>('first')\n const openedFromTrigger = useRef(false)\n const typeahead = useRef({ text: '', timer: undefined as ReturnType<typeof setTimeout> | undefined })\n\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen)\n const isControlled = openProp !== undefined\n const isOpen = isControlled ? openProp : uncontrolledOpen\n const { isPresent, isExiting } = usePresence(isOpen)\n\n const triggerElement = () => laidOutElement(anchorRef.current) as HTMLElement | null\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (!isControlled) setUncontrolledOpen(next)\n onOpenChange?.(next)\n },\n [isControlled, onOpenChange]\n )\n\n const close = useCallback(\n ({ returnFocus = true }: { returnFocus?: boolean } = {}) => {\n setOpen(false)\n if (returnFocus) triggerElement()?.focus()\n },\n [setOpen]\n )\n\n const openWith = (focus: 'first' | 'last') => {\n initialFocus.current = focus\n openedFromTrigger.current = true\n setOpen(true)\n }\n\n // The trigger's ARIA is set on the element itself, so it reaches the real control even when the\n // trigger is wrapped (a Tooltip inside the trigger, for example)\n useEffect(() => {\n const element = triggerElement()\n if (!element) return\n if (!element.id) element.id = triggerId\n element.setAttribute('aria-haspopup', 'menu')\n element.setAttribute('aria-expanded', String(isOpen))\n if (isOpen) element.setAttribute('aria-controls', menuId)\n else element.removeAttribute('aria-controls')\n })\n\n // The menu is named by its trigger, whose own id is kept if it has one\n useIsomorphicLayoutEffect(() => {\n const panel = panelRef.current\n const element = triggerElement()\n if (!isPresent || !panel || !element) return\n if (!element.id) element.id = triggerId\n panel.setAttribute('aria-labelledby', element.id)\n }, [isPresent])\n\n // In the top layer beside the trigger; scrolling or resizing closes it, since the trigger moves\n const detach = useCallback(() => close({ returnFocus: false }), [close])\n useFloatingLayer({\n isPresent,\n floatingRef: panelRef,\n anchorRef,\n side,\n align,\n matchAnchorWidth: matchTriggerWidth,\n onDetach: detach,\n })\n\n // Opening from the trigger focuses the first or last item. An open that didn't come from the\n // trigger (defaultOpen, or a controlled open) leaves focus where it is\n useEffect(() => {\n if (!isOpen || !openedFromTrigger.current) return\n openedFromTrigger.current = false\n focusItem(panelRef.current, initialFocus.current)\n }, [isOpen])\n\n // A press outside the trigger and the menu closes it, leaving focus where the press put it\n useEffect(() => {\n if (!isOpen) return\n const onPointerDown = (event: PointerEvent) => {\n const target = event.target as Node\n if (panelRef.current?.contains(target) || anchorRef.current?.contains(target)) return\n close({ returnFocus: false })\n }\n document.addEventListener('pointerdown', onPointerDown, true)\n return () => document.removeEventListener('pointerdown', onPointerDown, true)\n }, [isOpen, close])\n\n useEffect(() => () => clearTimeout(typeahead.current.timer), [])\n\n const onTriggerKeyDown = (event: React.KeyboardEvent) => {\n if (panelRef.current?.contains(event.target as Node)) return\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n openWith('first')\n } else if (event.key === 'ArrowUp') {\n event.preventDefault()\n openWith('last')\n }\n }\n\n const onTriggerClick = (event: React.MouseEvent) => {\n if (panelRef.current?.contains(event.target as Node)) return\n // A keyboard click (Enter, Space) is handled on keydown\n if (event.detail === 0) return\n if (isOpen) close({ returnFocus: false })\n else openWith('first')\n }\n\n const onMenuKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n const items = Array.from(event.currentTarget.querySelectorAll<HTMLElement>(ITEM_SELECTOR))\n const current = items.indexOf(document.activeElement as HTMLElement)\n const move = (index: number) => {\n event.preventDefault()\n items[(index + items.length) % items.length]?.focus()\n }\n switch (event.key) {\n case 'ArrowDown': return move(current + 1)\n case 'ArrowUp': return move(current - 1)\n case 'Home': return move(0)\n case 'End': return move(items.length - 1)\n case 'Escape':\n event.preventDefault()\n event.stopPropagation()\n return close()\n case 'Tab':\n // Focus moves on to the next element after the trigger, and the menu closes\n return close({ returnFocus: false })\n default:\n if (event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey && event.key !== ' ') {\n const state = typeahead.current\n clearTimeout(state.timer)\n state.text += event.key.toLowerCase()\n state.timer = setTimeout(() => { state.text = '' }, TYPEAHEAD_RESET_MS)\n // The label alone: not a leading Avatar's initials, the description or the shortcut\n const label = (item: HTMLElement) =>\n (item.dataset.label ?? item.querySelector('[data-menu-label]')?.textContent ?? '').trim().toLowerCase()\n const ordered = [...items.slice(current + 1), ...items.slice(0, current + 1)]\n const search = state.text.length > 1 ? [items[current], ...ordered] : ordered\n search.find((item) => item && label(item).startsWith(state.text))?.focus()\n }\n }\n }\n\n return (\n <MenuContext.Provider value={{ close }}>\n <Anchor ref={anchorRef} onKeyDown={onTriggerKeyDown} onClick={onTriggerClick}>\n {trigger}\n {isPresent && (\n <Panel\n ref={panelRef}\n id={menuId}\n role=\"menu\"\n tabIndex={-1}\n $exiting={isExiting}\n onKeyDown={onMenuKeyDown}\n data-testid={dataTestId}\n >\n {children}\n </Panel>\n )}\n </Anchor>\n </MenuContext.Provider>\n )\n}\n\nMenu.displayName = 'Menu'\n\n// ---------------------------------------------------------------------------------------------\n// Items\n\ninterface ItemBaseProps {\n /** The item's label */\n children: React.ReactNode\n /** A leading Icon or Avatar. Decorative: the label names the item (decision 0028). */\n icon?: React.ReactNode\n /** Secondary text under the label, such as a workspace's plan */\n description?: React.ReactNode\n /**\n * A keyboard shortcut shown at the end of the item: `label` is shown (such as \"⌘K\") and `keys` is\n * exposed as `aria-keyshortcuts` (such as \"Meta+K\"). Display only: Menu doesn't bind the keys.\n */\n shortcut?: { label: string; keys: string }\n /** Whether the item can be activated. A disabled item can still be focused (WAI-ARIA). */\n disabled?: boolean\n /** Text for typeahead, when the label isn't plain text */\n textValue?: string\n /** Test identifier for the item */\n 'data-testid'?: string\n}\n\nexport interface MenuItemProps extends ItemBaseProps {\n /** Called when the item is activated. The menu then closes. */\n onSelect?: () => void\n /**\n * A destructive action, shown in the danger colour as ActionSheet's are.\n * @default false\n */\n destructive?: boolean\n}\n\nexport interface MenuItemRadioProps extends ItemBaseProps {\n /** Whether this is the chosen item of its group */\n checked: boolean\n /** Called when the item is chosen. The menu then closes. */\n onSelect?: () => void\n}\n\nexport interface MenuItemCheckboxProps extends ItemBaseProps {\n /** Whether the item is on */\n checked: boolean\n /** Called with the new state when the item is toggled. The menu stays open. */\n onCheckedChange?: (checked: boolean) => void\n}\n\nconst Row = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $checked: boolean; $focused: boolean; $disabled: boolean; $destructive: boolean }>`\n display: flex;\n align-items: center;\n gap: ${space[200]};\n box-sizing: border-box;\n min-height: ${size.row.sm};\n padding: ${space.inset.xs} ${space.inset.md};\n font: ${typography.small};\n color: ${({ $destructive }) => ($destructive ? color.text.danger : color.text.default)};\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n user-select: none;\n transition: background-color ${motion.duration.fast} ${motion.easing.decelerate},\n color ${motion.duration.fast} ${motion.easing.decelerate};\n\n /* The shared row states (0030): focus shows the hover state (0029); only checked items are\n light blue, with the checkmark so the state isn't colour alone */\n ${({ $checked, $focused, $disabled }) => interactiveRow({ selected: $checked, focused: $focused, disabled: $disabled })}\n\n ${({ $disabled }) => $disabled && css`color: ${color.text.disabled};`}\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: ${border.focus};\n outline-offset: calc(-1 * ${border.focusOffset});\n }\n`\n\nconst Leading = styled.span`\n display: inline-flex;\n flex-shrink: 0;\n`\n\nconst Text = styled.span`\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n`\n\nconst Description = styled.span`\n font: ${typography.caption};\n color: ${color.text.muted};\n`\n\nconst Shortcut = styled.span`\n flex-shrink: 0;\n font: ${typography.caption};\n color: ${color.text.muted};\n`\n\nconst Check = styled.span`\n display: inline-flex;\n flex-shrink: 0;\n color: inherit;\n`\n\ninterface RowItemProps extends ItemBaseProps {\n role: 'menuitem' | 'menuitemradio' | 'menuitemcheckbox'\n checked?: boolean\n destructive?: boolean\n onActivate: () => void\n}\n\nconst RowItem = ({\n role,\n children,\n icon,\n description,\n shortcut,\n disabled = false,\n destructive = false,\n checked,\n textValue,\n onActivate,\n 'data-testid': dataTestId,\n}: RowItemProps) => {\n const [focused, setFocused] = useState(false)\n const checkable = role !== 'menuitem'\n\n const activate = () => {\n if (!disabled) onActivate()\n }\n\n return (\n <Row\n role={role}\n tabIndex={-1}\n aria-disabled={disabled || undefined}\n aria-checked={checkable ? Boolean(checked) : undefined}\n aria-keyshortcuts={shortcut?.keys}\n data-label={textValue}\n data-testid={dataTestId}\n $checked={Boolean(checked)}\n $focused={focused}\n $disabled={disabled}\n $destructive={destructive}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n onPointerMove={(event) => {\n // The pointer moves focus, so hover and keyboard share one highlighted item\n if (document.activeElement !== event.currentTarget) event.currentTarget.focus()\n }}\n onClick={activate}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n activate()\n }\n }}\n >\n {icon && <Leading aria-hidden=\"true\">{icon}</Leading>}\n <Text>\n <span data-menu-label=\"\">{children}</span>\n {description && <Description>{description}</Description>}\n </Text>\n {shortcut && <Shortcut aria-hidden=\"true\">{shortcut.label}</Shortcut>}\n {checkable && checked && (\n <Check>\n <Icon name=\"check\" size=\"sm\" iconColor=\"inherit\" />\n </Check>\n )}\n </Row>\n )\n}\n\n/** An action. Activating it closes the menu. */\nexport const MenuItem = ({ onSelect, ...props }: MenuItemProps) => {\n const { close } = useMenu('MenuItem')\n return (\n <RowItem\n role=\"menuitem\"\n {...props}\n onActivate={() => {\n close()\n onSelect?.()\n }}\n />\n )\n}\n\n/** One choice of a set, inside a MenuGroup. Choosing it closes the menu. */\nexport const MenuItemRadio = ({ onSelect, checked, ...props }: MenuItemRadioProps) => {\n const { close } = useMenu('MenuItemRadio')\n return (\n <RowItem\n role=\"menuitemradio\"\n checked={checked}\n {...props}\n onActivate={() => {\n close()\n onSelect?.()\n }}\n />\n )\n}\n\n/** An on/off option, inside a MenuGroup. Toggling it keeps the menu open. */\nexport const MenuItemCheckbox = ({ onCheckedChange, checked, ...props }: MenuItemCheckboxProps) => {\n useMenu('MenuItemCheckbox')\n return <RowItem role=\"menuitemcheckbox\" checked={checked} {...props} onActivate={() => onCheckedChange?.(!checked)} />\n}\n\n// ---------------------------------------------------------------------------------------------\n// Structure\n\nexport interface MenuGroupProps {\n /** A visible label for the group, which also names it for assistive technology */\n label?: string\n /** The group's items */\n children: React.ReactNode\n}\n\nconst GroupLabel = styled.div`\n padding: ${space.inset.xs} ${space.inset.md};\n font: ${typography.caption};\n color: ${color.text.muted};\n`\n\n/** Groups related items. Radio and checkbox items always sit in a group. */\nexport const MenuGroup = ({ label, children }: MenuGroupProps) => {\n const labelId = useId()\n return (\n <div role=\"group\" aria-labelledby={label ? labelId : undefined}>\n {label && (\n <GroupLabel id={labelId} aria-hidden=\"true\">\n {label}\n </GroupLabel>\n )}\n {children}\n </div>\n )\n}\n\n// Divider's smallest spacing (16px each side) is too loose between dense rows, so the menu draws\n// its own 1px rule with the decorative border\nconst Separator = styled.div`\n margin: ${space[100]} 0;\n border-top: ${border.default};\n`\n\n/** Separates groups */\nexport const MenuDivider = () => <Separator role=\"separator\" aria-orientation=\"horizontal\" />\n\nMenuItem.displayName = 'MenuItem'\nMenuItemRadio.displayName = 'MenuItemRadio'\nMenuItemCheckbox.displayName = 'MenuItemCheckbox'\nMenuGroup.displayName = 'MenuGroup'\nMenuDivider.displayName = 'MenuDivider'\n","import { createContext, useContext, type ComponentType } from 'react'\n\n// What SidebarNav (#331) tells the rows and sections inside it. Outside a SidebarNav, the\n// defaults apply: expanded, plain links, and each row's own hover colour.\nexport interface SidebarNavContextValue {\n /** The nav is the icon rail: rows show their icon only */\n collapsed: boolean\n /** A router's link component for internal URLs, set once on SidebarNav (decision 0008) */\n linkComponent?: ComponentType<any> // eslint-disable-line @typescript-eslint/no-explicit-any\n /** SidebarNav draws one gliding hover highlight, so rows don't colour their own hover (0053) */\n glide: boolean\n /** Inside a SidebarNav, whose body is one list: a section is one of its items */\n inNav?: boolean\n}\n\nexport const SidebarNavContext = createContext<SidebarNavContextValue>({ collapsed: false, glide: false })\n\nexport const useSidebarNav = () => useContext(SidebarNavContext)\n","import styled, { css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { reducedMotion } from '../../../lib/styleUtils'\n\n// How SidebarNav's pieces move between expanded and the rail (issue 348), shared by the nav, its rows\n// and its sections so they move as one: nothing unmounts or re-lays out mid-move.\n\nconst { semantic, component } = tokens\nconst { motion, space, size } = semantic\n\n/**\n * SidebarNav sets this on itself: its expanded width. Content inside keeps that width while the nav\n * narrows, so the nav's edge clips it instead of it reflowing or ellipsising mid-move.\n */\nexport const EXPANDED_WIDTH_VAR = '--co-sidebar-nav-expanded'\n\n/**\n * SidebarNav sets this to its body's scrollbar width (0 for overlay scrollbars), measured while\n * expanded, since a classic scrollbar narrows every row\n */\nexport const SCROLLBAR_VAR = '--co-sidebar-nav-scrollbar'\n\n/** The nav's own side padding: the rail's inner width is the rail less twice this */\nexport const NAV_PADDING = space[200]\n\n/** A row's left inset: centres an icon in the rail, and stays the same expanded, so icons never move */\nexport const ROW_INSET = `calc((${component.sidebarNav.width.rail} - 2 * ${NAV_PADDING} - ${size.icon.md}) / 2)`\n\n/**\n * Fades content that the rail doesn't show (labels, meta text, the badge count, the header and\n * footer). Leaving is quick and accelerates; arriving decelerates over the width's duration (0037).\n * Hidden content also leaves the keyboard and screen readers once the fade ends.\n */\nexport const fade = (hidden: boolean) => css`\n opacity: ${hidden ? 0 : 1};\n /* Shown content inherits, so anything hidden around it (a folded section) still wins */\n visibility: ${hidden ? 'hidden' : 'inherit'};\n transition: ${hidden\n ? `opacity ${motion.duration.fast} ${motion.easing.accelerate}, visibility ${motion.duration.fast} ${motion.easing.accelerate}`\n : `opacity ${motion.duration.moderate} ${motion.easing.decelerate}, visibility ${motion.duration.moderate} ${motion.easing.decelerate}`};\n`\n\n/**\n * Folds something away (its height animates to nothing, with a fade), for what the rail leaves out:\n * a section's header, a section with nothing to show, an item without an icon. Under reduced motion\n * the height changes at once and only the fade remains (0015).\n */\nexport const Fold = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $open: boolean }>`\n display: grid;\n grid-template-rows: ${({ $open }) => ($open ? '1fr' : '0fr')};\n ${({ $open }) => fade(!$open)}\n transition: grid-template-rows ${motion.duration.moderate} ${motion.easing.decelerate},\n ${({ $open }) =>\n $open\n ? `opacity ${motion.duration.moderate} ${motion.easing.decelerate}, visibility ${motion.duration.moderate} ${motion.easing.decelerate}`\n : `opacity ${motion.duration.fast} ${motion.easing.accelerate}, visibility ${motion.duration.moderate} ${motion.easing.accelerate}`};\n\n /* Clipped only while folded: once open, focus rings outside a control aren't cut off */\n & > * {\n min-height: 0;\n overflow: ${({ $open }) => ($open ? 'visible' : 'hidden')};\n }\n\n ${reducedMotion} {\n transition: opacity ${motion.duration.fast} ${motion.easing.decelerate},\n visibility ${motion.duration.fast} ${motion.easing.decelerate};\n }\n`\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { interactiveRow, rowRadius } from '../../../lib/styleUtils'\nimport { Icon } from '../../atoms/Icon'\nimport { Tooltip } from '../../atoms/Tooltip'\nimport { Badge } from '../../atoms/Badge'\nimport type { IconName } from '../../../types/icons'\nimport { useSidebarNav } from './SidebarNavContext'\nimport { EXPANDED_WIDTH_VAR, Fold, NAV_PADDING, ROW_INSET, SCROLLBAR_VAR, fade } from './sidebarNavMotion'\n\nconst { semantic } = tokens\nconst { space, color, motion, size, border, typography } = semantic\n\nexport interface SidebarNavItemProps {\n /** The item's label. In the rail it becomes the accessible name and shows in a Tooltip. */\n label: string\n /** A leading icon. Items without one are hidden in the rail. */\n icon?: IconName\n /**\n * Where the item goes. With a `url` the item is a link (using SidebarNav's `linkComponent`\n * for internal URLs, decision 0008); without one it's a button for `onClick`.\n */\n url?: string\n /** Called when the item is activated. Without a `url`, the item is a button. */\n onClick?: (event: React.MouseEvent) => void\n /**\n * The page the user is on: `aria-current=\"page\"` and the light-blue selected treatment\n * (decisions 0016, 0030).\n * @default false\n */\n current?: boolean\n /** Quiet text at the end of the row, such as \"3/10\". Hidden in the rail. */\n meta?: string\n /**\n * New or unread items (decision 0045): a count, or `'dot'` for \"something new\". Shown as an\n * accent Badge count at the end of the row, or as a dot inside the icon's corner in the rail, and\n * added to the item's name.\n */\n badge?: number | 'dot'\n /**\n * How the badge reads in the item's name, such as \"3 unread\".\n * @default \"{count} new\", or \"new\" for a dot\n */\n badgeLabel?: string\n /** Test identifier for the item's link or button */\n 'data-testid'?: string\n}\n\n// Anything without a scheme (https:, mailto:) or a protocol-relative start is the app's own URL,\n// relative ones included, so it goes through the router's link\nconst isInternalUrl = (url: string) => !/^[a-z][a-z\\d+.-]*:/i.test(url) && !url.startsWith('//')\n\nconst Row = styled.a.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $current: boolean; $glide: boolean }>`\n display: flex;\n align-items: center;\n gap: ${space[200]};\n box-sizing: border-box;\n width: 100%;\n /* The row's height is its token, with the content centred (as controls, 0034): vertical\n padding would hold a compact row above its 24px (0051) */\n min-height: ${size.row.sm};\n /* The left inset is the same expanded and in the rail, so the icon never moves (issue 348); the row\n clips what the rail doesn't show as the nav narrows */\n padding: 0 ${space.inset.sm} 0 ${ROW_INSET};\n overflow: hidden;\n border: none;\n border-radius: ${rowRadius};\n background: none;\n font: ${typography.small};\n color: ${color.text.default};\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n transition: background-color ${motion.duration.fast} ${motion.easing.decelerate},\n color ${motion.duration.fast} ${motion.easing.decelerate};\n\n /* The shared row states (0030); the current page takes the light-blue selected ladder */\n ${({ $current }) => interactiveRow({ selected: $current })}\n\n /* Inside SidebarNav one highlight glides to the hovered row, so an unselected row stays clear\n underneath it; pressed and selected rows keep their own fills (0053) */\n ${({ $glide, $current }) =>\n $glide &&\n !$current &&\n css`\n &:hover:not(:active) {\n background-color: transparent;\n }\n `}\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: ${border.focus};\n outline-offset: calc(-1 * ${border.focusOffset});\n }\n`\n\n// The row's content keeps the nav's expanded width (when it's in a SidebarNav), so the nav's edge\n// clips it as the nav narrows, instead of the label reflowing or ellipsising mid-move\nconst Inner = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $withIcon: boolean }>`\n display: flex;\n flex: 1 0 auto;\n align-items: center;\n gap: ${space[200]};\n min-width: 0;\n /* The row's content width when expanded: the nav's width less any scrollbar, its padding, the row's\n insets and, beside an icon, the icon and its gap */\n width: calc(\n var(${EXPANDED_WIDTH_VAR}, 0px) - var(${SCROLLBAR_VAR}, 0px) - 2 * ${NAV_PADDING} - ${ROW_INSET} - ${space.inset.sm}\n ${({ $withIcon }) => ($withIcon ? `- ${size.icon.md} - ${space[200]}` : '')}\n );\n`\n\nconst Label = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $hidden: boolean }>`\n flex: 1;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n ${({ $hidden }) => fade($hidden)}\n`\n\nconst Meta = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $hidden: boolean }>`\n flex-shrink: 0;\n font: ${typography.caption};\n color: ${color.text.muted};\n ${({ $hidden }) => fade($hidden)}\n`\n\n// A badge needs something to sit on: the icon, or this mark at the end of an item without one\n// Badge normally sits centred on its anchor's top-right corner (0045). At the end of the row the\n// count is laid out in place instead, so a count of any width (\"3\", \"12\", \"99+\") stays inside the\n// row in every density and never reaches the rows around it\nconst EndSlot = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $hidden: boolean }>`\n display: inline-flex;\n flex-shrink: 0;\n ${({ $hidden }) => fade($hidden)}\n\n & [role='status'] {\n position: static;\n transform: none;\n }\n`\n\nconst EndAnchor = styled.span`\n display: inline-flex;\n width: 0;\n height: 0;\n`\n\n// In the rail there's no room for a count, so a dot sits inside the icon's top-right corner\nconst IconBox = styled.span`\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n`\n\nconst Corner = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $hidden: boolean }>`\n position: absolute;\n top: 25%;\n right: 25%;\n display: inline-flex;\n ${({ $hidden }) => fade($hidden)}\n`\n\n// An item folds away in the rail when it has no icon to show there\nconst Item = styled(Fold).attrs({ as: 'li' })``\n\n/**\n * One row of a SidebarNav (#327): a link to a page, or a button for an action such as \"New chat\".\n * Renders an `li`, so it sits in SidebarNav's or a SidebarNavSection's list.\n */\nexport const SidebarNavItem = ({\n label,\n icon,\n url,\n onClick,\n current = false,\n meta,\n badge,\n badgeLabel,\n 'data-testid': dataTestId,\n}: SidebarNavItemProps) => {\n const { collapsed, linkComponent, glide } = useSidebarNav()\n\n const hasBadge = badge === 'dot' || (typeof badge === 'number' && badge > 0)\n const badgeText = badgeLabel ?? (badge === 'dot' ? 'new' : `${badge} new`)\n // The badge's own text would make a noisy name, so a badged item is named outright; so is an\n // item in the rail, where the label isn't shown\n const name = hasBadge ? `${label}, ${badgeText}` : collapsed ? label : undefined\n\n const count = typeof badge === 'number' ? badge : 0\n\n // Everything stays mounted and fades, so collapsing and expanding never jump (issue 348). Hidden\n // content leaves screen readers once its fade ends; the rail names the row with aria-label.\n const content = (\n <>\n {icon && (\n <IconBox>\n <Icon name={icon} size=\"md\" iconColor=\"inherit\" />\n {hasBadge && (\n <Corner $hidden={!collapsed}>\n <Badge variant=\"accent\" dot aria-label={badgeText}>\n <span />\n </Badge>\n </Corner>\n )}\n </IconBox>\n )}\n <Inner $withIcon={Boolean(icon)}>\n <Label $hidden={collapsed}>{label}</Label>\n {meta && <Meta $hidden={collapsed}>{meta}</Meta>}\n {hasBadge && (\n <EndSlot $hidden={collapsed}>\n <Badge variant=\"accent\" dot={badge === 'dot'} count={count} aria-label={badgeText}>\n <EndAnchor />\n </Badge>\n </EndSlot>\n )}\n </Inner>\n </>\n )\n\n const shared = {\n $current: current,\n $glide: glide,\n // The icon is decorative (0028)\n 'aria-label': name,\n 'data-testid': dataTestId,\n // SidebarNav's gliding highlight finds rows by this (0053)\n 'data-sidebar-row': '',\n onClick,\n }\n\n const row = url ? (\n <Row\n {...shared}\n {...(linkComponent && isInternalUrl(url) ? { as: linkComponent } : {})}\n href={url}\n aria-current={current ? 'page' : undefined}\n >\n {content}\n </Row>\n ) : (\n // aria-current=\"page\" marks a link to the current page; a button isn't one\n <Row {...shared} as=\"button\" type=\"button\">\n {content}\n </Row>\n )\n\n return (\n // The Tooltip is always there, turned off while the label is visible, so collapsing never\n // remounts the row (which would lose focus and skip its transitions)\n <Item $open={!collapsed || Boolean(icon)}>\n <div>\n <Tooltip text={label} side=\"right\" disabled={!collapsed}>\n {row}\n </Tooltip>\n </div>\n </Item>\n )\n}\n\nSidebarNavItem.displayName = 'SidebarNavItem'\n","import React, { useEffect, useId, useState } from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n// The clip timer needs the resolved duration, not its CSS variable (decision 0041)\n// eslint-disable-next-line no-restricted-imports\nimport tokenValues from '../../../styles/tokens.json'\nimport { interactiveRow, reducedMotion, rowRadius } from '../../../lib/styleUtils'\nimport { Icon } from '../../atoms/Icon'\nimport { useSidebarNav } from '../SidebarNavItem/SidebarNavContext'\nimport { SidebarNavItem } from '../SidebarNavItem'\nimport { Fold } from '../SidebarNavItem/sidebarNavMotion'\n\n// How long the items take to show or hide: the clip lifts after this even if no transition ran\n// (reduced motion, or a background tab)\nconst COLLAPSE_MS = parseInt(tokenValues.semantic.motion.duration.moderate, 10)\n\nconst { semantic } = tokens\nconst { space, color, motion, size, border, typography } = semantic\n\nexport interface SidebarNavSectionProps {\n /** The section's visible label, which also names its list */\n label: string\n /** The section's `SidebarNavItem`s */\n children: React.ReactNode\n /**\n * Whether the label is a disclosure button that shows and hides the items.\n * @default false\n */\n collapsible?: boolean\n /** Whether the items are shown (controlled). Use with `onExpandedChange`. */\n expanded?: boolean\n /**\n * Whether the items start shown (uncontrolled).\n * @default true\n */\n defaultExpanded?: boolean\n /** Called when a collapsible section is shown or hidden */\n onExpandedChange?: (expanded: boolean) => void\n /**\n * One action for the section, such as an IconButton for \"New chat\" or \"Search\". Hidden in the\n * rail.\n */\n action?: React.ReactElement\n /** Test identifier for the section */\n 'data-testid'?: string\n}\n\n// The space above a section is the same expanded and in the rail, so the switch never shifts rows;\n// only the rule's colour changes: clear when the label separates the section, visible in the rail,\n// where there's no label (issue 348)\nconst Section = styled(Fold).withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $collapsed: boolean }>`\n margin-top: ${space[200]};\n padding-top: ${space[100]};\n border-top: ${border.width.thin} solid ${({ $collapsed }) => ($collapsed ? color.border.default : 'transparent')};\n\n /* Nothing above to separate it from */\n &:first-child {\n margin-top: 0;\n padding-top: 0;\n border-top: none;\n }\n`\n\nconst Header = styled.div`\n display: flex;\n align-items: center;\n gap: ${space[100]};\n min-height: ${size.row.sm};\n`\n\n// The label's look: quiet, small and muted, so the items lead\nconst labelText = css`\n font: ${typography.caption};\n color: ${color.text.muted};\n`\n\nconst StaticLabel = styled.div`\n ${labelText}\n flex: 1;\n min-width: 0;\n padding: 0 ${space.inset.sm};\n`\n\n\nconst Disclosure = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $expanded: boolean }>`\n ${labelText}\n display: flex;\n align-items: center;\n gap: ${space[100]};\n flex: 1;\n min-width: 0;\n box-sizing: border-box;\n min-height: ${size.row.sm};\n padding: 0 ${space.inset.sm};\n border: none;\n border-radius: ${rowRadius};\n background: none;\n text-align: left;\n cursor: pointer;\n transition: background-color ${motion.duration.fast} ${motion.easing.decelerate};\n\n ${interactiveRow()}\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: ${border.focus};\n outline-offset: calc(-1 * ${border.focusOffset});\n }\n\n /* The caret points down when shown and right when hidden */\n & > span:first-child {\n transition: transform ${motion.duration.fast} ${motion.easing.standard};\n transform: rotate(${({ $expanded }) => ($expanded ? '0deg' : '-90deg')});\n }\n\n ${reducedMotion} {\n & > span:first-child {\n transition: none;\n }\n }\n`\n\n// The items' height animates from nothing to their own height with grid rows, so no\n// \"no limit\" max-height is needed. Once hidden, the items leave the keyboard and screen readers.\nconst Collapse = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $expanded: boolean }>`\n display: grid;\n grid-template-rows: ${({ $expanded }) => ($expanded ? '1fr' : '0fr')};\n opacity: ${({ $expanded }) => ($expanded ? 1 : 0)};\n /* Shown items inherit, so a section folded away in the rail hides them too */\n visibility: ${({ $expanded }) => ($expanded ? 'inherit' : 'hidden')};\n /* The items fold and fade together (issue 348) */\n transition: grid-template-rows ${motion.duration.moderate} ${motion.easing.decelerate},\n opacity ${motion.duration.moderate} ${motion.easing.decelerate},\n visibility ${motion.duration.moderate} ${motion.easing.decelerate};\n\n ${reducedMotion} {\n transition: opacity ${motion.duration.fast} ${motion.easing.decelerate},\n visibility ${motion.duration.fast} ${motion.easing.decelerate};\n }\n`\n\n// Clipped only while hidden or moving: once shown, an item's Badge can overhang its row\nconst List = styled.ul.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $clip: boolean }>`\n min-height: 0;\n overflow: ${({ $clip }) => ($clip ? 'hidden' : 'visible')};\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n flex-direction: column;\n`\n\n/**\n * A labelled group of SidebarNavItems (#328), optionally collapsible, with one optional action.\n * In the rail its label and action are hidden and a rule separates it from the section above.\n */\nexport const SidebarNavSection = ({\n label,\n children,\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded = true,\n onExpandedChange,\n action,\n 'data-testid': dataTestId,\n}: SidebarNavSectionProps) => {\n const { collapsed, inNav } = useSidebarNav()\n const labelId = useId()\n const listId = useId()\n const [uncontrolledExpanded, setUncontrolledExpanded] = useState(defaultExpanded)\n const [animating, setAnimating] = useState(false)\n const isControlled = expandedProp !== undefined\n const userExpanded = isControlled ? expandedProp : uncontrolledExpanded\n // The rail has no disclosure button, so a section always shows its items there\n const expanded = !collapsible || collapsed || userExpanded\n\n useEffect(() => {\n if (!animating) return\n const timer = setTimeout(() => setAnimating(false), COLLAPSE_MS)\n return () => clearTimeout(timer)\n }, [animating])\n\n const toggle = () => {\n const next = !expanded\n setAnimating(true)\n if (!isControlled) setUncontrolledExpanded(next)\n onExpandedChange?.(next)\n }\n\n // The rail shows items by their icons only; a section with none has nothing to show there, so it\n // isn't drawn at all, not even its separating rule. Items wrapped in other components count as\n // showing, since their icons can't be seen from here.\n const showsInRail = React.Children.toArray(children).some(\n (child) => !React.isValidElement(child) || child.type !== SidebarNavItem || Boolean((child.props as { icon?: unknown }).icon)\n )\n\n // The header stays mounted, folding away in the rail; the list keeps its name from it there\n const header = (\n <Header>\n {collapsible ? (\n <Disclosure\n type=\"button\"\n id={labelId}\n aria-expanded={expanded}\n aria-controls={listId}\n $expanded={expanded}\n onClick={toggle}\n >\n <Icon name=\"caretDown\" size=\"sm\" iconColor=\"inherit\" />\n {label}\n </Disclosure>\n ) : (\n <StaticLabel id={labelId}>{label}</StaticLabel>\n )}\n {action}\n </Header>\n )\n\n return (\n // In a SidebarNav the body is one list, so the section is one of its items\n // In the rail, a section with nothing to show folds away, rule and all\n <Section\n as={inNav ? 'li' : 'div'}\n $open={!collapsed || showsInRail}\n $collapsed={collapsed}\n data-testid={dataTestId}\n >\n <div>\n <Fold $open={!collapsed}>\n <div>{header}</div>\n </Fold>\n <Collapse\n $expanded={expanded}\n onTransitionEnd={(event) => {\n if (event.target === event.currentTarget && event.propertyName === 'grid-template-rows') setAnimating(false)\n }}\n >\n <List id={listId} aria-labelledby={labelId} $clip={!expanded || animating}>\n {children}\n </List>\n </Collapse>\n </div>\n </Section>\n )\n}\n\nSidebarNavSection.displayName = 'SidebarNavSection'\n","import { useEffect, useRef, type ReactNode, type KeyboardEvent } from 'react'\nimport { createPortal } from 'react-dom'\nimport styled, { keyframes, css } from 'styled-components'\nimport { IconButton } from '../../atoms/IconButton'\nimport { Button, type ButtonVariant } from '../../atoms/Button'\nimport { Typography } from '../../atoms/Typography'\nimport { Stack } from '../../atoms/Stack'\nimport { Divider } from '../../atoms/Divider'\nimport { type IconName } from '../../../types/icons'\nimport tokens from '@/lib/cssTokens'\nimport { exitAnimation, reducedMotion } from '../../../lib/styleUtils'\nimport { useInert, usePresence } from '../../../lib/usePresence'\n\nconst { semantic } = tokens\nconst { space, color, elevation, motion } = semantic\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport type ModalSize = 'small' | 'medium' | 'large'\n\nexport interface ModalAction {\n /** Button label text */\n label: string\n /** Callback when the action is clicked */\n onClick: () => void\n /**\n * Button variant. `accent` is the blue call to action (at most one per view).\n */\n variant?: ButtonVariant\n /** Optional leading icon */\n icon?: IconName\n /** Whether the button is disabled */\n disabled?: boolean\n}\n\nexport interface ModalProps {\n /** Whether the modal is visible */\n isOpen: boolean\n\n /** Callback fired when the modal should close (close button, overlay, Escape) */\n onClose: () => void\n\n /** Title displayed in the modal header */\n title: string\n\n /** Body content of the modal */\n children: ReactNode\n\n /**\n * Width preset. All sizes auto-switch to fullscreen below the `md` breakpoint (768 px).\n * - small → 400 px\n * - medium → 560 px\n * - large → 720 px\n * @default 'medium'\n */\n size?: ModalSize\n\n /** Structured action buttons rendered in the footer */\n actions?: ModalAction[]\n\n /**\n * Close when the backdrop overlay is clicked\n * @default true\n */\n closeOnOverlayClick?: boolean\n\n /**\n * Close when the Escape key is pressed\n * @default true\n */\n closeOnEscape?: boolean\n\n /** Test identifier for automated testing */\n 'data-testid'?: string\n\n /** Accessible label – falls back to `title` */\n 'aria-label'?: string\n\n /** ID of an element that describes the modal */\n 'aria-describedby'?: string\n}\n\n// ---------------------------------------------------------------------------\n// Size map\n// ---------------------------------------------------------------------------\n\nconst sizeToWidth: Record<ModalSize, string> = {\n small: tokens.semantic.size.overlay.sm,\n medium: tokens.semantic.size.overlay.md,\n large: tokens.semantic.size.overlay.lg,\n}\n\n// ---------------------------------------------------------------------------\n// Animations\n// ---------------------------------------------------------------------------\n\nconst fadeIn = keyframes`\n from { opacity: 0; }\n to { opacity: 1; }\n`\n\nconst scaleIn = keyframes`\n from {\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n`\n\n// ---------------------------------------------------------------------------\n// Styled components\n// ---------------------------------------------------------------------------\n\nconst StyledOverlay = styled.div<{ $isExiting: boolean }>`\n position: fixed;\n inset: 0;\n background-color: ${semantic.surface.scrim};\n z-index: ${semantic.layer.modal};\n ${css<{ $isExiting: boolean }>`animation: ${fadeIn} ${motion.duration.moderate} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};`}\n`\n\nconst StyledDialog = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $width: string; $isExiting: boolean }>`\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) scale(1);\n z-index: ${semantic.layer.modal};\n\n width: ${({ $width }) => $width};\n max-width: calc(100vw - ${space[400]} * 2);\n max-height: calc(100vh - ${space[400]} * 2);\n\n display: flex;\n flex-direction: column;\n\n background-color: ${semantic.surface.overlay};\n border-radius: ${tokens.component.overlay.borderRadius};\n box-shadow: ${elevation.overlay};\n overflow: hidden;\n\n ${css<{ $isExiting: boolean }>`animation: ${scaleIn} ${motion.duration.moderate} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};`}\n\n ${reducedMotion} {\n animation: ${fadeIn} ${motion.duration.moderate} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};\n }\n\n /* Auto-fullscreen below md breakpoint (768px) */\n @media (max-width: ${semantic.breakpoint.md}) {\n width: 100vw;\n height: 100vh;\n max-width: 100vw;\n max-height: 100vh;\n border-radius: 0;\n top: 0;\n left: 0;\n transform: none;\n animation: ${fadeIn} ${motion.duration.moderate} ${motion.easing.decelerate}${({ $isExiting }) => $isExiting && exitAnimation};\n }\n\n &:focus {\n outline: none;\n }\n\n`\n\nconst StyledHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ${space[400]} ${space[400]} 0;\n flex-shrink: 0;\n`\n\nconst StyledBody = styled.div`\n flex: 1 1 auto;\n overflow-y: auto;\n padding: ${space[300]} ${space[400]};\n\n /* Scrollbar styling */\n &::-webkit-scrollbar {\n width: ${semantic.space[200]};\n }\n &::-webkit-scrollbar-track {\n background: ${color.fill.muted};\n }\n &::-webkit-scrollbar-thumb {\n background: ${color.border.default};\n border-radius: ${semantic.radius.full};\n }\n &::-webkit-scrollbar-thumb:hover {\n background: ${color.fill.inverse};\n }\n`\n\nconst StyledFooter = styled.div`\n display: flex;\n justify-content: flex-end;\n gap: ${space[200]};\n padding: 0 ${space[400]} ${space[400]};\n flex-shrink: 0;\n`\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\n/**\n * Modal component\n *\n * A centred dialog overlay with a title, close button (IconButton), scrollable\n * body content, and an optional footer with structured action buttons.\n *\n * - Renders via `createPortal` to avoid z-index / overflow issues.\n * - Auto-fullscreen on viewports narrower than 768 px.\n * - Focus trap, Escape-to-close, overlay-click-to-close.\n * - Locks body scroll while open.\n *\n * Composes: IconButton, Button, Typography, Stack, Divider\n */\nexport const Modal: React.FC<ModalProps> = ({\n isOpen,\n onClose,\n title,\n children,\n size = 'medium',\n actions,\n closeOnOverlayClick = true,\n closeOnEscape = true,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n}) => {\n const dialogRef = useRef<HTMLDivElement>(null)\n const previousFocusRef = useRef<HTMLElement | null>(null)\n const { isPresent, isExiting } = usePresence(isOpen)\n useInert(dialogRef, isExiting)\n\n // -----------------------------------------------------------------------\n // Focus & scroll-lock management\n // -----------------------------------------------------------------------\n useEffect(() => {\n if (isOpen) {\n previousFocusRef.current = document.activeElement as HTMLElement\n // Short delay so the animation can start before we shift focus\n const timer = setTimeout(() => dialogRef.current?.focus(), 100)\n document.body.style.overflow = 'hidden'\n return () => {\n clearTimeout(timer)\n }\n } else {\n previousFocusRef.current?.focus()\n document.body.style.overflow = ''\n }\n return () => {\n document.body.style.overflow = ''\n }\n }, [isOpen])\n\n // -----------------------------------------------------------------------\n // Keyboard handling (Escape + focus trap)\n // -----------------------------------------------------------------------\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (closeOnEscape && event.key === 'Escape') {\n event.preventDefault()\n onClose()\n }\n\n if (event.key === 'Tab') {\n const focusableElements = dialogRef.current?.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n )\n if (!focusableElements || focusableElements.length === 0) return\n\n const first = focusableElements[0]\n const last = focusableElements[focusableElements.length - 1]\n\n if (event.shiftKey && document.activeElement === first) {\n event.preventDefault()\n last.focus()\n } else if (!event.shiftKey && document.activeElement === last) {\n event.preventDefault()\n first.focus()\n }\n }\n }\n\n // -----------------------------------------------------------------------\n // Overlay click\n // -----------------------------------------------------------------------\n const handleOverlayClick = (event: React.MouseEvent<HTMLDivElement>) => {\n // While exiting, the backdrop still catches clicks but doesn't close again\n if (!isExiting && closeOnOverlayClick && event.target === event.currentTarget) {\n onClose()\n }\n }\n\n // -----------------------------------------------------------------------\n // Render\n // -----------------------------------------------------------------------\n // Stays mounted while the exit fade runs, hidden from assistive technology\n if (!isPresent) return null\n\n const titleId = dataTestId ? `${dataTestId}-title` : 'modal-title'\n const width = sizeToWidth[size]\n\n const modal = (\n <>\n <StyledOverlay\n onClick={handleOverlayClick}\n $isExiting={isExiting}\n data-testid={dataTestId ? `${dataTestId}-overlay` : 'modal-overlay'}\n />\n\n <StyledDialog\n ref={dialogRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={ariaLabel || title}\n aria-labelledby={titleId}\n aria-describedby={ariaDescribedBy}\n aria-hidden={isExiting || undefined}\n tabIndex={-1}\n $width={width}\n $isExiting={isExiting}\n onKeyDown={handleKeyDown}\n data-testid={dataTestId}\n >\n {/* ---- Header ---- */}\n <StyledHeader>\n <span id={titleId}>\n <Typography variant=\"h3\">\n {title}\n </Typography>\n </span>\n <IconButton\n variant=\"naked\"\n iconName=\"close\"\n aria-label=\"Close modal\"\n onClick={onClose}\n size=\"medium\"\n data-testid={dataTestId ? `${dataTestId}-close` : 'modal-close'}\n />\n </StyledHeader>\n\n <Divider size=\"small\" />\n\n {/* ---- Body ---- */}\n <StyledBody data-testid={dataTestId ? `${dataTestId}-body` : 'modal-body'}>\n {children}\n </StyledBody>\n\n {/* ---- Footer ---- */}\n {actions && actions.length > 0 && (\n <>\n <Divider size=\"small\" />\n <StyledFooter data-testid={dataTestId ? `${dataTestId}-footer` : 'modal-footer'}>\n {actions.map((action, index) => (\n <Button\n key={`${action.label}-${index}`}\n onClick={action.onClick}\n variant={action.variant || 'secondary'}\n iconName={action.icon}\n disabled={action.disabled}\n size=\"medium\"\n data-testid={\n dataTestId ? `${dataTestId}-action-${index}` : `modal-action-${index}`\n }\n >\n {action.label}\n </Button>\n ))}\n </StyledFooter>\n </>\n )}\n </StyledDialog>\n </>\n )\n\n return createPortal(modal, document.body)\n}\n\nModal.displayName = 'Modal'\n","import styled, { css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\n\nconst { component: { input }, semantic } = tokens\n\n// Spacing comes from the semantic scales: no component spacing tokens (decision 0022).\n// Single-line fields take their height from size.control.lg as a minimum and the\n// browser centres the text, so there is no vertical padding (decision 0034).\n\n/**\n * Shared input states for text-based form controls\n */\nexport type InputState = 'default' | 'focus' | 'error' | 'disabled'\n\n/**\n * Base styled input component with all common styling\n * Reusable across TextField, TextArea, PasswordInput, NumberInput\n */\ninterface StyledInputBaseProps {\n $hasError?: boolean\n $disabled?: boolean\n}\n\n/**\n * Styles shared by the single-line input and the textarea. Each element sets its\n * own min-height and padding. Interpolating a styled component into another's CSS\n * inserts its class selector, not its styles, so the sharing goes through `css`.\n */\nconst inputBaseStyles = css<StyledInputBaseProps>`\n /* Typography */\n font: ${input.default.font};\n color: ${({ $disabled }) => \n $disabled \n ? input.disabled.textColor \n : input.default.textColor\n };\n \n /* Layout */\n box-sizing: border-box; /* the min-height includes the border, without relying on a global reset */\n width: 100%;\n \n /* Visual styling */\n background-color: ${({ $disabled }) => \n $disabled \n ? input.disabled.backgroundColor \n : input.default.backgroundColor\n };\n \n border: ${input.default.borderWidth} solid ${({ $hasError, $disabled }) => {\n if ($disabled) return input.disabled.borderColor\n if ($hasError) return input.error.borderColor\n return input.default.borderColor\n }};\n \n border-radius: ${input.default.borderRadius};\n \n /* Remove default appearance */\n appearance: none;\n outline: none;\n \n /* Transitions */\n transition: border-color ${tokens.semantic.motion.duration.moderate} ${tokens.semantic.motion.easing.standard},\n outline ${tokens.semantic.motion.duration.moderate} ${tokens.semantic.motion.easing.standard};\n \n /* Placeholder */\n &::placeholder {\n color: ${input.placeholder.textColor};\n opacity: 1;\n }\n \n /* Focus state */\n &:focus {\n border-color: ${({ $hasError }) => \n $hasError \n ? input.error.focus.borderColor \n : input.focus.borderColor\n };\n outline: ${input.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n }\n \n /* Hover state (only when not disabled) */\n &:hover:not(:disabled) {\n border-color: ${({ $hasError }) => \n $hasError \n ? input.error.hover.borderColor \n : input.hover.borderColor\n };\n }\n \n /* Disabled state */\n &:disabled {\n cursor: not-allowed;\n }\n \n /* Remove number input spinners */\n &[type='number']::-webkit-inner-spin-button,\n &[type='number']::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n \n &[type='number'] {\n -moz-appearance: textfield;\n }\n`\n\nexport const StyledInputBase = styled.input.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledInputBaseProps>`\n ${inputBaseStyles}\n min-height: ${semantic.size.control.lg};\n padding: 0 ${semantic.space.inset.lg};\n`\n\n/**\n * Base styled textarea with shared styling\n */\nexport const StyledTextAreaBase = styled.textarea.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledInputBaseProps>`\n ${inputBaseStyles}\n \n /* TextArea specific: a taller minimum for multi-line entry (decision 0034) */\n min-height: ${input.textarea.minHeight};\n padding: ${semantic.space.inset.md} ${semantic.space.inset.lg};\n resize: vertical;\n`\n","import { InputHTMLAttributes, forwardRef, useId, useCallback, ChangeEvent, KeyboardEvent } from 'react'\nimport styled from 'styled-components'\nimport { StyledInputBase } from '../TextField/InputBase'\nimport { IconButton } from '../../atoms/IconButton/IconButton'\nimport tokens from '@/lib/cssTokens'\nimport { fieldButtonRadius } from '../../../lib/styleUtils'\n\nconst { field } = tokens.component\n// Gaps come from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst { space } = tokens.semantic\n\n/**\n * Props for the NumberInput component\n */\nexport interface NumberInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange' | 'value' | 'defaultValue'> {\n /**\n * Label text for the input\n */\n label?: string\n \n /**\n * Helper text displayed below the input\n */\n helperText?: string\n \n /**\n * Error message to display\n */\n error?: string\n \n /**\n * Whether the field is required\n * @default false\n */\n required?: boolean\n \n /**\n * Whether the input is disabled\n * @default false\n */\n disabled?: boolean\n \n /**\n * Minimum allowed value\n */\n min?: number\n \n /**\n * Maximum allowed value\n */\n max?: number\n \n /**\n * Step increment/decrement value\n * @default 1\n */\n step?: number\n \n /**\n * Current value (controlled)\n */\n value?: number | ''\n \n /**\n * Default value (uncontrolled)\n */\n defaultValue?: number | ''\n \n /**\n * Callback fired when value changes\n */\n onChange?: (value: number | '', event: ChangeEvent<HTMLInputElement>) => void\n \n /**\n * Unique identifier for the input\n * Generated automatically if not provided\n */\n id?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\nconst StyledFieldContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${space[200]};\n width: 100%;\n`\n\nconst StyledLabel = styled.label`\n display: flex;\n align-items: center;\n gap: ${space[100]};\n font: ${field.label.typography};\n color: ${field.label.color};\n\n &[data-disabled='true'] {\n color: ${field.label.colorDisabled};\n }\n`\n\nconst StyledRequiredIndicator = styled.span`\n color: ${field.requiredIndicator.color};\n font-weight: ${field.requiredIndicator.fontWeight};\n`\n\nconst StyledInputWrapper = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n`\n\nconst StyledNumberInput = styled(StyledInputBase)`\n /* Add padding on the right to make room for stepper buttons */\n padding-right: ${tokens.semantic.space[1000]};\n`\n\nconst StyledStepperContainer = styled.div`\n position: absolute;\n right: ${tokens.semantic.space[200]};\n display: flex;\n flex-direction: row;\n gap: ${tokens.semantic.space[200]};\n\n /* Buttons inside the field nest within its corner: a step tighter than the control radius (decision 0055) */\n & > button {\n border-radius: ${fieldButtonRadius};\n }\n`\n\nconst StyledHelperText = styled.div<{ $isError?: boolean }>`\n font: ${field.helperText.typography};\n color: ${({ $isError }) =>\n $isError\n ? field.helperText.colorError\n : field.helperText.color\n };\n`\n\n/**\n * NumberInput component for numeric input with stepper buttons and WCAG 2.2 AA compliance\n * \n * Features:\n * - Stepper buttons for increment/decrement\n * - Keyboard arrow up/down support\n * - Min/max value constraints\n * - Custom step values\n * - Decimal and integer support\n * - Full accessibility with ARIA attributes\n * \n * @example\n * ```tsx\n * <NumberInput \n * label=\"Quantity\"\n * min={0}\n * max={100}\n * step={1}\n * value={value}\n * onChange={(newValue) => setValue(newValue)}\n * />\n * ```\n */\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n label,\n helperText,\n error,\n required = false,\n disabled = false,\n min,\n max,\n step = 1,\n value,\n defaultValue,\n onChange,\n id: providedId,\n 'data-testid': testId,\n placeholder,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n ...rest\n },\n ref\n ) => {\n const generatedId = useId()\n const id = providedId || generatedId\n const helperId = `${id}-helper`\n const errorId = `${id}-error`\n \n // Parse string value to number or empty string\n const parseValue = useCallback((val: string): number | '' => {\n if (val === '' || val === '-') return ''\n const parsed = parseFloat(val)\n return isNaN(parsed) ? '' : parsed\n }, [])\n \n // Format number to string for display\n const formatValue = useCallback((val: number | ''): string => {\n return val === '' ? '' : String(val)\n }, [])\n \n // Handle increment\n const handleIncrement = useCallback(() => {\n if (disabled) return\n \n const inputElement = (ref as React.RefObject<HTMLInputElement>)?.current\n const currentValue = value !== undefined ? value : parseValue(inputElement?.value || '')\n const numValue = currentValue === '' ? (min !== undefined ? min : 0) : currentValue\n const newValue = numValue + step\n \n // Check max constraint\n if (max !== undefined && newValue > max) return\n \n // Update input value directly for both controlled and uncontrolled\n if (inputElement) {\n inputElement.value = String(newValue)\n }\n \n // Create synthetic event\n const syntheticEvent = {\n target: inputElement || { value: String(newValue) },\n currentTarget: inputElement || { value: String(newValue) }\n } as ChangeEvent<HTMLInputElement>\n \n onChange?.(newValue, syntheticEvent)\n }, [disabled, value, min, max, step, onChange, parseValue, ref])\n \n // Handle decrement\n const handleDecrement = useCallback(() => {\n if (disabled) return\n \n const inputElement = (ref as React.RefObject<HTMLInputElement>)?.current\n const currentValue = value !== undefined ? value : parseValue(inputElement?.value || '')\n const numValue = currentValue === '' ? (max !== undefined ? max : 0) : currentValue\n const newValue = numValue - step\n \n // Check min constraint\n if (min !== undefined && newValue < min) return\n \n // Update input value directly for both controlled and uncontrolled\n if (inputElement) {\n inputElement.value = String(newValue)\n }\n \n // Create synthetic event\n const syntheticEvent = {\n target: inputElement || { value: String(newValue) },\n currentTarget: inputElement || { value: String(newValue) }\n } as ChangeEvent<HTMLInputElement>\n \n onChange?.(newValue, syntheticEvent)\n }, [disabled, value, min, max, step, onChange, parseValue, ref])\n \n // Handle input change\n const handleChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value\n \n // Allow empty, negative sign, or valid number (including decimals)\n if (inputValue === '' || inputValue === '-' || /^-?\\d*\\.?\\d*$/.test(inputValue)) {\n const parsedValue = parseValue(inputValue)\n onChange?.(parsedValue, e)\n } else {\n // Prevent invalid input by not updating\n e.preventDefault()\n e.target.value = formatValue(value !== undefined ? value : '')\n }\n }, [onChange, parseValue, value, formatValue])\n \n // Handle keyboard navigation\n const handleKeyDown = useCallback((e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'ArrowUp') {\n e.preventDefault()\n handleIncrement()\n } else if (e.key === 'ArrowDown') {\n e.preventDefault()\n handleDecrement()\n }\n }, [handleIncrement, handleDecrement])\n \n // Check if buttons should be disabled\n const isIncrementDisabled = disabled || (max !== undefined && value !== '' && typeof value === 'number' && value >= max)\n const isDecrementDisabled = disabled || (min !== undefined && value !== '' && typeof value === 'number' && value <= min)\n \n // Build aria-describedby\n const ariaDescribedByIds = [\n ariaDescribedBy,\n helperText ? helperId : null,\n error ? errorId : null,\n ].filter(Boolean).join(' ') || undefined\n \n return (\n <StyledFieldContainer>\n {label && (\n <StyledLabel \n htmlFor={id}\n data-disabled={disabled}\n >\n {label}\n {required && <StyledRequiredIndicator aria-label=\"required\">*</StyledRequiredIndicator>}\n </StyledLabel>\n )}\n \n <StyledInputWrapper>\n <StyledNumberInput\n ref={ref}\n id={id}\n type=\"text\"\n inputMode=\"decimal\"\n value={value !== undefined ? formatValue(value) : undefined}\n defaultValue={defaultValue !== undefined ? formatValue(defaultValue) : undefined}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n required={required}\n placeholder={placeholder}\n $hasError={!!error}\n $disabled={disabled}\n aria-label={ariaLabel || label}\n aria-invalid={!!error}\n aria-describedby={ariaDescribedByIds}\n aria-required={required}\n data-testid={testId}\n role=\"spinbutton\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={typeof value === 'number' ? value : undefined}\n {...rest}\n />\n \n <StyledStepperContainer>\n <IconButton\n iconName=\"caretUp\"\n variant=\"secondary\"\n size=\"small\"\n onClick={handleIncrement}\n disabled={isIncrementDisabled}\n aria-label=\"Increment value\"\n tabIndex={-1}\n type=\"button\"\n />\n <IconButton\n iconName=\"caretDown\"\n variant=\"secondary\"\n size=\"small\"\n onClick={handleDecrement}\n disabled={isDecrementDisabled}\n aria-label=\"Decrement value\"\n tabIndex={-1}\n type=\"button\"\n />\n </StyledStepperContainer>\n </StyledInputWrapper>\n \n {(helperText || error) && (\n <StyledHelperText \n id={error ? errorId : helperId}\n $isError={!!error}\n role={error ? 'alert' : undefined}\n aria-live={error ? 'polite' : undefined}\n >\n {error || helperText}\n </StyledHelperText>\n )}\n </StyledFieldContainer>\n )\n }\n)\n\nNumberInput.displayName = 'NumberInput'\n","import { InputHTMLAttributes, forwardRef, useId, useState } from 'react'\nimport styled from 'styled-components'\nimport { StyledInputBase } from '../TextField/InputBase'\nimport { IconButton } from '../../atoms/IconButton/IconButton'\nimport tokens from '@/lib/cssTokens'\nimport { fieldButtonRadius } from '../../../lib/styleUtils'\n\nconst { field } = tokens.component\n// Gaps come from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst { space } = tokens.semantic\n\n/**\n * Props for the PasswordField component\n */\nexport interface PasswordFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {\n /**\n * Label text for the input\n */\n label?: string\n \n /**\n * Helper text displayed below the input\n */\n helperText?: string\n \n /**\n * Error message to display\n */\n error?: string\n \n /**\n * Whether the field is required\n * @default false\n */\n required?: boolean\n \n /**\n * Whether the input is disabled\n * @default false\n */\n disabled?: boolean\n \n /**\n * Unique identifier for the input\n * Generated automatically if not provided\n */\n id?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n \n /**\n * Whether to show the password visibility toggle button\n * @default true\n */\n showToggle?: boolean\n}\n\nconst StyledFieldContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${space[200]};\n width: 100%;\n`\n\nconst StyledLabel = styled.label`\n display: flex;\n align-items: center;\n gap: ${space[100]};\n font: ${field.label.typography};\n color: ${field.label.color};\n\n &[data-disabled='true'] {\n color: ${field.label.colorDisabled};\n }\n`\n\nconst StyledRequiredIndicator = styled.span`\n color: ${field.requiredIndicator.color};\n font-weight: ${field.requiredIndicator.fontWeight};\n`\n\nconst StyledHelperText = styled.div<{ $hasError?: boolean }>`\n font: ${field.helperText.typography};\n color: ${({ $hasError }) =>\n $hasError\n ? field.helperText.colorError\n : field.helperText.color\n };\n`\n\nconst StyledInputWrapper = styled.div`\n position: relative;\n width: 100%;\n`\n\nconst StyledToggleButton = styled.div`\n position: absolute;\n right: ${tokens.semantic.space[200]};\n top: 50%;\n transform: translateY(-50%);\n\n /* Buttons inside the field nest within its corner: a step tighter than the control radius (decision 0055) */\n & > button {\n border-radius: ${fieldButtonRadius};\n }\n`\n\n/**\n * PasswordField component for secure password input with visibility toggle\n * \n * @example\n * ```tsx\n * <PasswordField \n * label=\"Password\" \n * helperText=\"Must be at least 8 characters\"\n * required\n * />\n * ```\n */\nexport const PasswordField = forwardRef<HTMLInputElement, PasswordFieldProps>(\n (\n {\n label,\n helperText,\n error,\n required = false,\n disabled = false,\n id: providedId,\n 'data-testid': dataTestId,\n showToggle = true,\n ...inputProps\n },\n ref\n ) => {\n // Generate unique ID if not provided\n const generatedId = useId()\n const id = providedId || generatedId\n \n // Password visibility state\n const [showPassword, setShowPassword] = useState(false)\n \n // IDs for ARIA relationships\n const errorId = error ? `${id}-error` : undefined\n const helperId = helperText && !error ? `${id}-helper` : undefined\n const describedBy = [errorId, helperId].filter(Boolean).join(' ') || undefined\n \n const hasError = Boolean(error)\n \n const togglePasswordVisibility = () => {\n setShowPassword(!showPassword)\n }\n \n return (\n <StyledFieldContainer>\n {label && (\n <StyledLabel \n htmlFor={id}\n data-disabled={disabled}\n >\n {label}\n {required && (\n <StyledRequiredIndicator aria-label=\"required\">\n *\n </StyledRequiredIndicator>\n )}\n </StyledLabel>\n )}\n \n <StyledInputWrapper>\n <StyledInputBase\n ref={ref}\n id={id}\n type={showPassword ? 'text' : 'password'}\n disabled={disabled}\n required={required}\n aria-required={required}\n aria-invalid={hasError}\n aria-describedby={describedBy}\n $hasError={hasError}\n $disabled={disabled}\n data-testid={dataTestId}\n style={{ paddingRight: showToggle ? '3rem' : undefined }}\n {...inputProps}\n />\n \n {showToggle && (\n <StyledToggleButton>\n <IconButton\n variant=\"naked\"\n size=\"small\"\n iconName={showPassword ? 'viewHide' : 'view'}\n onClick={togglePasswordVisibility}\n disabled={disabled}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n aria-pressed={showPassword}\n type=\"button\"\n tabIndex={-1}\n />\n </StyledToggleButton>\n )}\n </StyledInputWrapper>\n \n {error && (\n <StyledHelperText\n id={errorId}\n role=\"alert\"\n aria-live=\"polite\"\n $hasError={true}\n >\n {error}\n </StyledHelperText>\n )}\n \n {helperText && !error && (\n <StyledHelperText id={helperId}>\n {helperText}\n </StyledHelperText>\n )}\n </StyledFieldContainer>\n )\n }\n)\n\nPasswordField.displayName = 'PasswordField'\n","import { \n useState, \n useRef, \n useEffect, \n useMemo, \n KeyboardEvent, \n ChangeEvent, \n FocusEvent,\n InputHTMLAttributes,\n forwardRef\n} from 'react'\nimport styled from 'styled-components'\nimport { Icon } from '../../atoms/Icon/Icon'\nimport { IconButton } from '../../atoms/IconButton/IconButton'\nimport { Stack } from '../../atoms/Stack/Stack'\nimport { Typography } from '../../atoms/Typography/Typography'\nimport { ListItem } from '../List/ListItem'\nimport tokens from '@/lib/cssTokens'\nimport { fieldButtonRadius, rowStates } from '../../../lib/styleUtils'\n\nconst { semantic, component } = tokens\n\n/**\n * Suggestion item for autocomplete\n */\nexport interface Suggestion {\n /**\n * Unique identifier\n */\n id: string\n \n /**\n * Display text\n */\n label: string\n \n /**\n * Optional secondary text\n */\n description?: string\n \n /**\n * Optional category for grouping\n */\n category?: string\n}\n\n/**\n * Props for the SearchField component\n */\nexport interface SearchFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'onChange'> {\n /**\n * Current search value\n */\n value: string\n \n /**\n * Callback when value changes\n */\n onChange: (value: string) => void\n \n /**\n * Suggestions to display\n */\n suggestions?: Suggestion[]\n \n /**\n * Whether to show recent searches\n * @default true\n */\n showRecentSearches?: boolean\n \n /**\n * Array of recent search terms\n */\n recentSearches?: string[]\n \n /**\n * Callback when a suggestion is selected\n */\n onSuggestionSelect?: (suggestion: Suggestion | string) => void\n \n /**\n * Callback to clear recent searches\n */\n onClearRecentSearches?: () => void\n \n /**\n * Debounce delay in milliseconds\n * @default 300\n */\n debounceMs?: number\n \n /**\n * Placeholder text\n * @default 'Search...'\n */\n placeholder?: string\n \n /**\n * Whether the field is disabled\n * @default false\n */\n disabled?: boolean\n \n /**\n * Whether to show loading state\n * @default false\n */\n loading?: boolean\n \n /**\n * Accessible label\n */\n 'aria-label'?: string\n \n /**\n * Test identifier\n */\n 'data-testid'?: string\n}\n\ninterface StyledSearchContainerProps {\n $isFocused: boolean\n $disabled: boolean\n}\n\ninterface StyledSuggestionItemProps {\n $isHighlighted: boolean\n $isRecent: boolean\n}\n\nconst StyledSearchContainer = styled.div<StyledSearchContainerProps>`\n position: relative;\n width: 100%;\n`\n\nconst StyledInputWrapper = styled.div<StyledSearchContainerProps>`\n display: flex;\n align-items: center;\n gap: ${semantic.space[200]};\n /* The field's height comes from size.control.lg as a minimum, matching the other fields\n (decision 0034); the padding only matters if the content grows past it */\n box-sizing: border-box;\n min-height: ${semantic.size.control.lg};\n padding: ${semantic.space[200]} ${semantic.space[300]};\n background-color: ${component.input.default.backgroundColor};\n border: ${component.input.default.borderWidth} solid ${component.input.default.borderColor};\n border-radius: ${component.input.default.borderRadius};\n\n /* Buttons inside the field nest within its corner: a step tighter than the control radius (decision 0055) */\n & > button {\n border-radius: ${fieldButtonRadius};\n }\n\n transition: border-color ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}, outline ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard};\n \n ${props => props.$isFocused && `\n border-color: ${component.input.focus.borderColor};\n outline: ${component.input.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\n `}\n \n ${props => props.$disabled && `\n background-color: ${component.input.disabled.backgroundColor};\n border-color: ${component.input.disabled.borderColor};\n cursor: not-allowed;\n `}\n \n &:hover:not([data-disabled='true']) {\n border-color: ${component.input.hover.borderColor};\n }\n`\n\nconst StyledInput = styled.input`\n flex: 1;\n border: none;\n background: transparent;\n font: ${semantic.typography.body};\n color: ${semantic.color.text.default};\n outline: none;\n \n &::placeholder {\n color: ${component.input.placeholder.textColor};\n /* Firefox fades placeholders to 0.54 by default, which would undo the 4.5:1 contrast */\n opacity: 1;\n }\n \n &:disabled {\n color: ${semantic.color.text.disabled};\n cursor: not-allowed;\n }\n`\n\nconst StyledSuggestionsList = styled.ul`\n position: absolute;\n top: calc(100% + ${semantic.space[100]});\n left: 0;\n right: 0;\n max-height: ${tokens.semantic.size.menu.maxHeight};\n overflow-y: auto;\n background-color: ${semantic.surface.overlay};\n border: ${semantic.border.width.thin} solid ${semantic.color.border.default};\n border-radius: ${semantic.radius.md};\n box-shadow: ${semantic.elevation.floating};\n list-style: none;\n padding: ${semantic.space[100]} 0;\n margin: 0;\n z-index: ${semantic.layer.dropdown};\n\n /* The highlighted suggestion has keyboard focus, which is grey, not the light-blue selected\n treatment (decision 0029). Its row is the option's first child. While pressed, the row's own\n pressed state shows (decision 0030) */\n & > [data-highlighted] > :first-child:not(:active) {\n background-color: ${rowStates.unselected.hover.background};\n }\n`\n\nconst StyledSectionHeader = styled.div`\n padding: ${semantic.space[200]} ${semantic.space[300]};\n font: ${tokens.component.searchField.sectionHeader.typography};\n color: ${semantic.color.text.muted};\n text-transform: uppercase;\n letter-spacing: ${tokens.component.searchField.sectionHeader.letterSpacing};\n`\n\nconst debounce = <T extends (...args: any[]) => any>(\n func: T,\n wait: number\n): ((...args: Parameters<T>) => void) => {\n let timeout: NodeJS.Timeout | null = null\n \n return (...args: Parameters<T>) => {\n if (timeout) clearTimeout(timeout)\n timeout = setTimeout(() => func(...args), wait)\n }\n}\n\n/**\n * SearchField component with autocomplete and recent searches\n * \n * Provides intelligent search with debouncing, keyboard navigation,\n * suggestions, and recent search history. Fully accessible with ARIA.\n * \n * @example\n * ```tsx\n * const [search, setSearch] = useState('')\n * const [suggestions] = useState([\n * { id: '1', label: 'Apple', category: 'Fruit' },\n * { id: '2', label: 'Banana', category: 'Fruit' }\n * ])\n * \n * <SearchField\n * value={search}\n * onChange={setSearch}\n * suggestions={suggestions}\n * recentSearches={['coffee', 'tea']}\n * onSuggestionSelect={(item) => console.log('Selected:', item)}\n * />\n * ```\n */\nexport const SearchField = forwardRef<HTMLInputElement, SearchFieldProps>(\n (\n {\n value,\n onChange,\n suggestions = [],\n showRecentSearches = true,\n recentSearches = [],\n onSuggestionSelect,\n onClearRecentSearches,\n debounceMs = 300,\n placeholder = 'Search...',\n disabled = false,\n loading = false,\n 'aria-label': ariaLabel = 'Search',\n 'data-testid': dataTestId,\n ...inputProps\n },\n ref\n ) => {\n const [isFocused, setIsFocused] = useState(false)\n const [showSuggestions, setShowSuggestions] = useState(false)\n const [highlightedIndex, setHighlightedIndex] = useState(-1)\n const [debouncedValue, setDebouncedValue] = useState(value)\n const inputRef = useRef<HTMLInputElement>(null)\n const listRef = useRef<HTMLUListElement>(null)\n \n // Combine refs\n useEffect(() => {\n if (ref) {\n if (typeof ref === 'function') {\n ref(inputRef.current)\n } else {\n ref.current = inputRef.current\n }\n }\n }, [ref])\n \n // Debounced search\n const debouncedOnChange = useMemo(\n () =>\n debounce((newValue: string) => {\n setDebouncedValue(newValue)\n }, debounceMs),\n [debounceMs]\n )\n \n useEffect(() => {\n debouncedOnChange(value)\n }, [value, debouncedOnChange])\n \n // Combined list of suggestions and recent searches\n const displayItems = useMemo(() => {\n const items: Array<{ type: 'suggestion' | 'recent' | 'clear'; data: Suggestion | string }> = []\n \n if (value.trim()) {\n // Show matching suggestions\n suggestions.forEach(s => items.push({ type: 'suggestion', data: s }))\n } else if (showRecentSearches && recentSearches.length > 0) {\n // Show recent searches when empty\n recentSearches.forEach(r => items.push({ type: 'recent', data: r }))\n if (onClearRecentSearches) {\n items.push({ type: 'clear', data: 'clear' })\n }\n }\n \n return items\n }, [value, suggestions, recentSearches, showRecentSearches, onClearRecentSearches])\n \n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n onChange(newValue)\n setShowSuggestions(true)\n setHighlightedIndex(-1)\n }\n \n const handleFocus = (e: FocusEvent<HTMLInputElement>) => {\n setIsFocused(true)\n setShowSuggestions(true)\n inputProps.onFocus?.(e)\n }\n \n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n // Delay to allow click events on suggestions\n setTimeout(() => {\n setIsFocused(false)\n setShowSuggestions(false)\n setHighlightedIndex(-1)\n }, 200)\n inputProps.onBlur?.(e)\n }\n \n const handleSuggestionClick = (item: typeof displayItems[0]) => {\n if (item.type === 'clear') {\n onClearRecentSearches?.()\n return\n }\n \n const suggestion = item.data\n if (typeof suggestion === 'string') {\n onChange(suggestion)\n onSuggestionSelect?.(suggestion)\n } else {\n onChange(suggestion.label)\n onSuggestionSelect?.(suggestion)\n }\n setShowSuggestions(false)\n inputRef.current?.focus()\n }\n \n const handleClear = () => {\n onChange('')\n setShowSuggestions(false)\n inputRef.current?.focus()\n }\n \n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (!showSuggestions || displayItems.length === 0) return\n \n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault()\n setHighlightedIndex(prev =>\n prev < displayItems.length - 1 ? prev + 1 : prev\n )\n break\n \n case 'ArrowUp':\n e.preventDefault()\n setHighlightedIndex(prev => (prev > 0 ? prev - 1 : -1))\n break\n \n case 'Enter':\n e.preventDefault()\n if (highlightedIndex >= 0 && highlightedIndex < displayItems.length) {\n handleSuggestionClick(displayItems[highlightedIndex])\n }\n break\n \n case 'Escape':\n e.preventDefault()\n setShowSuggestions(false)\n setHighlightedIndex(-1)\n break\n }\n \n inputProps.onKeyDown?.(e)\n }\n \n // Scroll highlighted item into view\n useEffect(() => {\n if (highlightedIndex >= 0 && listRef.current) {\n const items = listRef.current.querySelectorAll('li')\n items[highlightedIndex]?.scrollIntoView({ block: 'nearest' })\n }\n }, [highlightedIndex])\n \n const showClearButton = value.length > 0 && !disabled\n const hasItems = displayItems.length > 0\n \n return (\n <StyledSearchContainer\n $isFocused={isFocused}\n $disabled={disabled}\n data-testid={dataTestId}\n >\n <StyledInputWrapper \n $isFocused={isFocused} \n $disabled={disabled}\n data-disabled={disabled}\n >\n <Icon\n name=\"search\"\n size=\"sm\"\n iconColor=\"subdued\"\n />\n \n <StyledInput\n ref={inputRef}\n type=\"text\"\n value={value}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-autocomplete=\"list\"\n aria-controls={showSuggestions && hasItems ? 'search-suggestions' : undefined}\n aria-expanded={showSuggestions && hasItems}\n aria-activedescendant={\n highlightedIndex >= 0 ? `suggestion-${highlightedIndex}` : undefined\n }\n role=\"combobox\"\n {...inputProps}\n />\n \n {loading && (\n <Icon\n name=\"refresh\"\n size=\"sm\"\n iconColor=\"subdued\"\n aria-label=\"Loading\"\n />\n )}\n \n {showClearButton && (\n <IconButton\n iconName=\"close\"\n size=\"small\"\n variant=\"naked\"\n onClick={handleClear}\n aria-label=\"Clear search\"\n tabIndex={-1}\n />\n )}\n </StyledInputWrapper>\n \n {showSuggestions && hasItems && (\n <StyledSuggestionsList\n ref={listRef}\n id=\"search-suggestions\"\n role=\"listbox\"\n >\n {!value.trim() && showRecentSearches && recentSearches.length > 0 && (\n <StyledSectionHeader>Recent Searches</StyledSectionHeader>\n )}\n \n {displayItems.map((item, index) => {\n if (item.type === 'clear') {\n return (\n <ListItem\n key=\"clear\"\n role=\"option\"\n primary=\"Clear recent searches\"\n interactive\n // Deprecated prop (0051), kept for this padding until 4.0 removes it\n spacing=\"compact\"\n onClick={() => handleSuggestionClick(item)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleSuggestionClick(item)\n }\n }}\n />\n )\n }\n \n const suggestion = item.data\n const isString = typeof suggestion === 'string'\n const label = isString ? suggestion : suggestion.label\n const description = !isString ? suggestion.description : undefined\n \n return (\n <ListItem\n key={isString ? suggestion : suggestion.id}\n id={`suggestion-${index}`}\n role=\"option\"\n aria-selected={index === highlightedIndex}\n primary={label}\n secondary={description}\n icon={item.type === 'recent' ? <Icon name=\"refresh\" size=\"xs\" /> : undefined}\n interactive\n data-highlighted={index === highlightedIndex || undefined}\n // Deprecated prop (0051), kept for this padding until 4.0 removes it\n spacing=\"compact\"\n onClick={() => handleSuggestionClick(item)}\n />\n )\n })}\n </StyledSuggestionsList>\n )}\n </StyledSearchContainer>\n )\n }\n)\n\nSearchField.displayName = 'SearchField'\n","import { useEffect, useRef, ReactNode, KeyboardEvent } from 'react'\nimport styled, { keyframes, css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { exitAnimation, reducedMotion } from '../../../lib/styleUtils'\nimport { useInert, usePresence } from '../../../lib/usePresence'\n\nconst { semantic } = tokens\n\n/**\n * Props for the Sheet component\n */\nexport interface SheetProps {\n /**\n * Whether the sheet is open\n */\n isOpen: boolean\n \n /**\n * Callback fired when the sheet should close\n */\n onClose: () => void\n \n /**\n * Position of the sheet\n * @default 'right'\n */\n position?: 'top' | 'right' | 'bottom' | 'left'\n \n /**\n * Variant of the sheet\n * - 'sheet': Full height/width edge-to-edge\n * - 'drawer': Floating with rounded corners and margin\n * @default 'sheet'\n */\n variant?: 'sheet' | 'drawer'\n \n /**\n * Width of the sheet (for left/right positions)\n * @default semantic.size.overlay.sm (25rem, 400px)\n */\n width?: string\n \n /**\n * Height of the sheet (for top/bottom positions)\n * @default semantic.size.overlay.sm (25rem, 400px)\n */\n height?: string\n \n /**\n * Content to display in the sheet\n */\n children?: ReactNode\n \n /**\n * Whether clicking the overlay should close the sheet\n * @default true\n */\n closeOnOverlayClick?: boolean\n \n /**\n * Whether pressing Escape should close the sheet\n * @default true\n */\n closeOnEscape?: boolean\n \n /**\n * Optional title for the sheet (improves accessibility)\n */\n title?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n \n /**\n * Accessible label for the sheet\n */\n 'aria-label'?: string\n \n /**\n * ID of element describing the sheet\n */\n 'aria-describedby'?: string\n}\n\n// Fade in animation for overlay\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`\n\n// Slide animations for each position\nconst slideInRight = keyframes`\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0);\n }\n`\n\nconst slideInLeft = keyframes`\n from {\n transform: translateX(-100%);\n }\n to {\n transform: translateX(0);\n }\n`\n\nconst slideInTop = keyframes`\n from {\n transform: translateY(-100%);\n }\n to {\n transform: translateY(0);\n }\n`\n\nconst slideInBottom = keyframes`\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n`\n\nconst StyledOverlay = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isExiting: boolean }>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: ${semantic.surface.scrim};\n z-index: ${semantic.layer.overlay};\n ${css<{ $isExiting: boolean }>`animation: ${fadeIn} ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}${({ $isExiting }) => $isExiting && exitAnimation};`}\n`\n\nconst StyledSheet = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $position: 'top' | 'right' | 'bottom' | 'left'\n $variant: 'sheet' | 'drawer'\n $width: string\n $height: string\n $isExiting: boolean\n}>`\n position: fixed;\n /* A floating layer: one step above raised content in the dark theme (issue 356) */\n background-color: ${semantic.surface.overlay};\n box-shadow: ${semantic.elevation.overlay};\n z-index: ${semantic.layer.overlay};\n overflow-y: auto;\n \n /* Position-specific styles */\n ${({ $position, $variant, $width, $height }) => {\n const isDrawer = $variant === 'drawer'\n const margin = isDrawer ? semantic.space[400] : '0'\n const borderRadius = isDrawer ? tokens.component.overlay.borderRadius : '0'\n \n switch ($position) {\n case 'right':\n return css<{ $isExiting: boolean }>`\n top: ${margin};\n right: ${margin};\n bottom: ${margin};\n width: ${$width};\n max-width: calc(100vw - ${isDrawer ? `${semantic.space[400]} * 2` : '0px'});\n border-radius: ${borderRadius} 0 0 ${borderRadius};\n animation: ${slideInRight} ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}${({ $isExiting }) => $isExiting && exitAnimation};\n `\n case 'left':\n return css<{ $isExiting: boolean }>`\n top: ${margin};\n left: ${margin};\n bottom: ${margin};\n width: ${$width};\n max-width: calc(100vw - ${isDrawer ? `${semantic.space[400]} * 2` : '0px'});\n border-radius: 0 ${borderRadius} ${borderRadius} 0;\n animation: ${slideInLeft} ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}${({ $isExiting }) => $isExiting && exitAnimation};\n `\n case 'top':\n return css<{ $isExiting: boolean }>`\n top: ${margin};\n left: ${margin};\n right: ${margin};\n height: ${$height};\n max-height: calc(100vh - ${isDrawer ? `${semantic.space[400]} * 2` : '0px'});\n border-radius: 0 0 ${borderRadius} ${borderRadius};\n animation: ${slideInTop} ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}${({ $isExiting }) => $isExiting && exitAnimation};\n `\n case 'bottom':\n return css<{ $isExiting: boolean }>`\n bottom: ${margin};\n left: ${margin};\n right: ${margin};\n height: ${$height};\n max-height: calc(100vh - ${isDrawer ? `${semantic.space[400]} * 2` : '0px'});\n border-radius: ${borderRadius} ${borderRadius} 0 0;\n animation: ${slideInBottom} ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}${({ $isExiting }) => $isExiting && exitAnimation};\n `\n }\n }}\n\n ${reducedMotion} {\n animation: ${fadeIn} ${semantic.motion.duration.moderate} ${semantic.motion.easing.standard}${({ $isExiting }) => $isExiting && exitAnimation};\n }\n \n /* Focus trap styling */\n &:focus {\n outline: none;\n }\n\n \n /* Scrollbar styling */\n &::-webkit-scrollbar {\n width: ${semantic.space[200]};\n }\n \n &::-webkit-scrollbar-track {\n background: ${semantic.surface.overlay}; /* matches the panel */\n }\n \n &::-webkit-scrollbar-thumb {\n background: ${semantic.color.border.default};\n border-radius: ${semantic.radius.full};\n }\n \n &::-webkit-scrollbar-thumb:hover {\n background: ${semantic.color.fill.inverse};\n }\n`\n\nconst StyledSheetContent = styled.div`\n padding: ${semantic.space[600]};\n min-height: 100%;\n`\n\n/**\n * Sheet component for side panels and drawers\n * \n * Provides a sliding panel that appears from any edge of the screen.\n * Can be used for navigation menus, filters, forms, or additional content.\n * \n * @example\n * ```tsx\n * // Right-positioned sheet (default)\n * <Sheet isOpen={isOpen} onClose={() => setIsOpen(false)}>\n * <h2>Sheet Content</h2>\n * <p>Your content here</p>\n * </Sheet>\n * \n * // Drawer variant from bottom\n * <Sheet \n * isOpen={isOpen} \n * onClose={() => setIsOpen(false)}\n * position=\"bottom\"\n * variant=\"drawer\"\n * height=\"60vh\"\n * >\n * <h2>Mobile Menu</h2>\n * </Sheet>\n * ```\n */\nexport const Sheet = ({\n isOpen,\n onClose,\n position = 'right',\n variant = 'sheet',\n width = tokens.semantic.size.overlay.sm,\n height = tokens.semantic.size.overlay.sm,\n children,\n closeOnOverlayClick = true,\n closeOnEscape = true,\n title,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n}: SheetProps) => {\n const sheetRef = useRef<HTMLDivElement>(null)\n const previousFocusRef = useRef<HTMLElement | null>(null)\n const { isPresent, isExiting } = usePresence(isOpen)\n useInert(sheetRef, isExiting)\n \n // Focus management\n useEffect(() => {\n if (isOpen) {\n // Store previous focus\n previousFocusRef.current = document.activeElement as HTMLElement\n \n // Focus sheet\n const timer = setTimeout(() => {\n sheetRef.current?.focus()\n }, 100) // Small delay to allow animation to start\n \n // Prevent body scroll\n document.body.style.overflow = 'hidden'\n\n // A quick close cancels the pending focus, so it can't pull focus back into the exiting sheet\n return () => {\n clearTimeout(timer)\n document.body.style.overflow = ''\n }\n } else {\n // Restore previous focus\n if (previousFocusRef.current) {\n previousFocusRef.current.focus()\n }\n \n // Restore body scroll\n document.body.style.overflow = ''\n }\n \n return () => {\n document.body.style.overflow = ''\n }\n }, [isOpen])\n \n // Keyboard handling\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (closeOnEscape && event.key === 'Escape') {\n event.preventDefault()\n onClose()\n }\n \n // Focus trap\n if (event.key === 'Tab') {\n const focusableElements = sheetRef.current?.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )\n \n if (!focusableElements || focusableElements.length === 0) return\n \n const firstElement = focusableElements[0] as HTMLElement\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement\n \n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault()\n lastElement.focus()\n } else if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault()\n firstElement.focus()\n }\n }\n }\n \n // Overlay click handling\n const handleOverlayClick = (event: React.MouseEvent<HTMLDivElement>) => {\n // While exiting, the backdrop still catches clicks but doesn't close again\n if (!isExiting && closeOnOverlayClick && event.target === event.currentTarget) {\n onClose()\n }\n }\n \n // Stays mounted while the exit fade runs, hidden from assistive technology\n if (!isPresent) return null\n \n return (\n <>\n <StyledOverlay\n $isExiting={isExiting}\n onClick={handleOverlayClick}\n data-testid={dataTestId ? `${dataTestId}-overlay` : 'sheet-overlay'}\n />\n \n <StyledSheet\n ref={sheetRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={ariaLabel || title || 'Sheet dialog'}\n aria-describedby={ariaDescribedBy}\n aria-hidden={isExiting || undefined}\n tabIndex={-1}\n $position={position}\n $variant={variant}\n $width={width}\n $height={height}\n $isExiting={isExiting}\n onKeyDown={handleKeyDown}\n data-testid={dataTestId}\n >\n <StyledSheetContent>\n {children}\n </StyledSheetContent>\n </StyledSheet>\n </>\n )\n}\n\nSheet.displayName = 'Sheet'\n","import { useRef, useState, useEffect, useId, KeyboardEvent } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { forcedColors, reducedMotion } from '../../../lib/styleUtils'\n\nconst { semantic } = tokens\n\n/**\n * Props for the Slider component\n */\nexport interface SliderProps {\n /**\n * Minimum value of the slider\n * @default 0\n */\n min?: number\n \n /**\n * Maximum value of the slider\n * @default 100\n */\n max?: number\n \n /**\n * Step increment for value changes\n * @default 1\n */\n step?: number\n \n /**\n * Current value for single slider\n */\n value?: number\n \n /**\n * Default value for uncontrolled single slider\n */\n defaultValue?: number\n \n /**\n * Current values for range slider [min, max]\n */\n rangeValue?: [number, number]\n \n /**\n * Default values for uncontrolled range slider [min, max]\n */\n defaultRangeValue?: [number, number]\n \n /**\n * Callback fired when value changes (single slider)\n */\n onChange?: (value: number) => void\n \n /**\n * Callback fired when range values change (range slider)\n */\n onRangeChange?: (values: [number, number]) => void\n \n /**\n * Whether the slider is disabled\n * @default false\n */\n disabled?: boolean\n \n /**\n * Label for the slider\n */\n label?: string\n \n /**\n * Whether to show value labels\n * @default true\n */\n showValueLabel?: boolean\n \n /**\n * Custom formatter for value labels\n */\n formatValue?: (value: number) => string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n \n /**\n * Accessible name for the slider\n */\n 'aria-label'?: string\n \n /**\n * ID of element describing the slider\n */\n 'aria-describedby'?: string\n}\n\nconst StyledSliderContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap:0;\n width: 100%;\n`\n\nconst StyledLabel = styled.label<{ $disabled?: boolean }>`\n font: ${semantic.typography.label};\n color: ${({ $disabled }) => \n $disabled ? semantic.color.text.disabled : semantic.color.text.default\n };\n margin-bottom: ${semantic.space[400]};\n`\n\nconst StyledSliderTrackContainer = styled.div`\n position: relative;\n width: 100%;\n height: ${semantic.space[1000]};\n display: flex;\n align-items: center;\n`\n\nconst StyledTrack = styled.div<{ $disabled?: boolean }>`\n position: relative;\n width: 100%;\n height: ${semantic.space[100]};\n background-color: ${({ $disabled }) =>\n $disabled \n ? semantic.color.fill.disabled\n : tokens.component.track.background\n };\n border-radius: ${semantic.radius.full};\n cursor: ${({ $disabled }) => $disabled ? 'not-allowed' : 'pointer'};\n /* A vertical swipe over the track still scrolls the page */\n touch-action: pan-y;\n /* The thumbs measure their distance apart in cqw (1% of the track's width) */\n container-type: inline-size;\n\n /* Forced colours drop the track's fill, so it gets an edge; the thumb stays centred on it (decision 0038).\n A div gets no system disabled colour, so a disabled track sets GrayText itself. */\n ${forcedColors} {\n border: ${semantic.border.width.thin} solid ${({ $disabled }) => $disabled ? 'GrayText' : 'CanvasText'};\n }\n`\n\nconst StyledTrackFill = styled.div<{ $disabled?: boolean }>`\n position: absolute;\n height: 100%;\n background-color: ${({ $disabled }) =>\n $disabled\n ? semantic.color.icon.disabled\n : semantic.color.fill.emphasis\n };\n border-radius: ${semantic.radius.full};\n pointer-events: none;\n\n /* The fill is the value, so it keeps a fill in forced colours (decision 0038) */\n ${forcedColors} {\n forced-color-adjust: none;\n background-color: ${({ $disabled }) => $disabled ? 'GrayText' : 'Highlight'};\n }\n`\n\nconst StyledThumb = styled.div<{ \n $disabled?: boolean\n $active?: boolean\n /** A range slider's thumb: its hit area stops at the midpoint between the two thumbs */\n $range?: 'min' | 'max'\n}>`\n position: absolute;\n width: ${semantic.space[500]};\n height: ${semantic.space[500]};\n top: calc(-1 * ${semantic.space[200]});\n background-color: ${({ $disabled }) =>\n $disabled\n ? semantic.color.fill.disabled\n : tokens.component.slider.thumb.background\n };\n border: ${semantic.border.width.thick} solid ${({ $disabled }) =>\n $disabled\n ? semantic.color.icon.disabled\n : semantic.color.fill.emphasis\n };\n border-radius: ${semantic.radius.full};\n cursor: ${({ $disabled }) => $disabled ? 'not-allowed' : 'grab'};\n /* The thumb takes every touch gesture, so a drag moves the value instead of scrolling */\n touch-action: none;\n transform: translateX(-50%);\n /* left is the thumb's position, set from the value: it glides there, as it always has (decision 0037) */\n transition: left ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate},\n transform ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate},\n box-shadow ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate},\n background-color ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate},\n border-color ${semantic.motion.duration.fast} ${semantic.motion.easing.decelerate};\n box-shadow: ${tokens.component.slider.thumb.shadow.default};\n\n /* The pointer target (WCAG 2.5.8, decision 0039): the thumb keeps its 20px look, and an\n invisible hit area centred on it takes pointer input instead, 24px for a mouse or pen and\n 44px on a touch screen. A range slider's two hit areas stop at the midpoint between the\n thumbs (--slider-reach, set from their positions), so they never overlap and a drag always\n takes the nearer thumb. The thumb itself takes no input, as its body can overlap the other\n thumb's half. */\n pointer-events: none;\n --slider-hit: ${semantic.size.pointerTarget};\n @media (pointer: coarse) {\n --slider-hit: ${semantic.size.touchTarget};\n }\n --slider-hit-half: calc(var(--slider-hit) / 2);\n --slider-hit-start: ${({ $range }) => $range === 'max' ? 'min(var(--slider-hit-half), var(--slider-reach))' : 'var(--slider-hit-half)'};\n --slider-hit-end: ${({ $range }) => $range === 'min' ? 'min(var(--slider-hit-half), var(--slider-reach))' : 'var(--slider-hit-half)'};\n\n &::before {\n content: '';\n position: absolute;\n top: 50%;\n left: calc(50% - var(--slider-hit-start));\n width: calc(var(--slider-hit-start) + var(--slider-hit-end));\n height: var(--slider-hit);\n transform: translateY(-50%);\n pointer-events: auto;\n }\n\n /* Without container query units the midpoint can't be measured, so the hit areas stay whole\n (where they overlap, the thumb drawn later wins) */\n @supports not (width: 1cqw) {\n &::before {\n left: calc(50% - var(--slider-hit-half));\n width: var(--slider-hit);\n }\n }\n\n ${reducedMotion} {\n transition: none;\n }\n \n &:hover:not([aria-disabled=\"true\"]) {\n transform: translateX(-50%) scale(1.1);\n box-shadow: ${tokens.component.slider.thumb.shadow.hover};\n }\n \n &:focus-visible {\n outline: ${semantic.border.focus};\n outline-offset: ${semantic.border.focusOffset};\n }\n \n &:active:not([aria-disabled=\"true\"]) {\n cursor: grabbing;\n transform: translateX(-50%) scale(0.95);\n }\n \n ${({ $active }) => $active && `\n transform: translateX(-50%) scale(1.1);\n box-shadow: ${tokens.component.slider.thumb.shadow.active};\n `}\n`\n\nconst StyledValueLabel = styled.div<{ $disabled?: boolean }>`\n position: absolute;\n top: calc(-1 * ${semantic.space[800]});\n left: ${semantic.space[200]};\n transform: translateX(-50%);\n padding: ${semantic.space[100]} ${semantic.space[200]};\n background-color: ${semantic.color.fill.emphasis};\n color: ${semantic.color.text.inverse};\n font: ${semantic.typography.caption};\n border-radius: ${semantic.radius.sm};\n white-space: nowrap;\n pointer-events: none;\n opacity: ${({ $disabled }) => $disabled ? semantic.opacity.disabled : semantic.opacity.full};\n \n &::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n width: 0;\n height: 0;\n border-left: ${semantic.space[100]} solid transparent;\n border-right: ${semantic.space[100]} solid transparent;\n border-top: ${semantic.space[100]} solid ${semantic.color.fill.emphasis};\n }\n`\n\nconst StyledMinMaxLabels = styled.div`\n display: flex;\n justify-content: space-between;\n font: ${semantic.typography.body};\n color: ${semantic.color.text.muted};\n margin-top: ${semantic.space[100]};\n`\n\n/**\n * Slider component for single value or range selection\n * \n * @example\n * ```tsx\n * // Single value slider\n * <Slider \n * label=\"Volume\"\n * min={0}\n * max={100}\n * value={50}\n * onChange={(value) => console.log(value)}\n * />\n * \n * // Range slider\n * <Slider \n * label=\"Budget Range\"\n * min={0}\n * max={1000}\n * rangeValue={[200, 800]}\n * onRangeChange={(values) => console.log(values)}\n * />\n * ```\n */\nexport const Slider = ({\n min = 0,\n max = 100,\n step = 1,\n value: controlledValue,\n defaultValue,\n rangeValue: controlledRangeValue,\n defaultRangeValue,\n onChange,\n onRangeChange,\n disabled = false,\n label,\n showValueLabel = true,\n formatValue = (val) => val.toString(),\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n}: SliderProps) => {\n const generatedId = useId()\n const trackRef = useRef<HTMLDivElement>(null)\n const [activeThumb, setActiveThumb] = useState<'single' | 'min' | 'max' | null>(null)\n // Removes the document listeners of a drag in progress\n const endDragRef = useRef<(() => void) | null>(null)\n\n useEffect(() => () => endDragRef.current?.(), [])\n \n // Determine if this is a range slider\n const isRange = controlledRangeValue !== undefined || defaultRangeValue !== undefined || onRangeChange !== undefined\n \n // State for single slider\n const [internalValue, setInternalValue] = useState(defaultValue ?? min)\n const currentValue = controlledValue ?? internalValue\n \n // State for range slider\n const [internalRangeValue, setInternalRangeValue] = useState<[number, number]>(\n defaultRangeValue ?? [min, min + (max - min) / 4]\n )\n const currentRangeValue = controlledRangeValue ?? internalRangeValue\n \n // Clamp value to min/max and nearest step\n const clampValue = (val: number): number => {\n const clamped = Math.max(min, Math.min(max, val))\n const stepped = Math.round((clamped - min) / step) * step + min\n return Math.min(max, stepped)\n }\n \n // Convert pixel position to value\n const positionToValue = (clientX: number): number => {\n if (!trackRef.current) return min\n \n const rect = trackRef.current.getBoundingClientRect()\n const percent = (clientX - rect.left) / rect.width\n const rawValue = min + percent * (max - min)\n return clampValue(rawValue)\n }\n \n // Convert value to percentage for positioning\n const valueToPercent = (val: number): number => {\n return ((val - min) / (max - min)) * 100\n }\n \n // Handle single slider change\n const handleSingleChange = (newValue: number) => {\n const clampedValue = clampValue(newValue)\n setInternalValue(clampedValue)\n onChange?.(clampedValue)\n }\n \n // Handle range slider change\n const handleRangeChange = (newMin: number, newMax: number) => {\n const clampedMin = clampValue(newMin)\n const clampedMax = clampValue(newMax)\n \n // Ensure min <= max\n const orderedMin = Math.min(clampedMin, clampedMax)\n const orderedMax = Math.max(clampedMin, clampedMax)\n \n setInternalRangeValue([orderedMin, orderedMax])\n onRangeChange?.([orderedMin, orderedMax])\n }\n \n // Pointer handlers: mouse, touch and pen\n const handleTrackClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n // A click on a thumb (or the end of a drag) leaves the value where the thumb put it\n if ((event.target as HTMLElement).closest('[role=\"slider\"]')) return\n \n const newValue = positionToValue(event.clientX)\n \n if (isRange) {\n const [minVal, maxVal] = currentRangeValue\n const distToMin = Math.abs(newValue - minVal)\n const distToMax = Math.abs(newValue - maxVal)\n \n if (distToMin < distToMax) {\n handleRangeChange(newValue, maxVal)\n } else {\n handleRangeChange(minVal, newValue)\n }\n } else {\n handleSingleChange(newValue)\n }\n }\n \n const handleThumbPointerDown = (thumb: 'single' | 'min' | 'max', event: React.PointerEvent<HTMLDivElement>) => {\n if (disabled) return\n // Only the primary button drags; a touch or pen contact always counts\n if (event.pointerType === 'mouse' && event.button !== 0) return\n event.preventDefault()\n endDragRef.current?.()\n setActiveThumb(thumb)\n\n const { pointerId } = event\n // Capture keeps the drag on this thumb when the pointer leaves it, or the window\n event.currentTarget.setPointerCapture?.(pointerId)\n\n const handlePointerMove = (e: PointerEvent) => {\n if (e.pointerId !== pointerId) return\n const newValue = positionToValue(e.clientX)\n \n if (isRange) {\n const [minVal, maxVal] = currentRangeValue\n if (thumb === 'min') {\n handleRangeChange(newValue, maxVal)\n } else {\n handleRangeChange(minVal, newValue)\n }\n } else {\n handleSingleChange(newValue)\n }\n }\n \n const endDrag = () => {\n setActiveThumb(null)\n document.removeEventListener('pointermove', handlePointerMove)\n document.removeEventListener('pointerup', handlePointerEnd)\n document.removeEventListener('pointercancel', handlePointerEnd)\n endDragRef.current = null\n }\n\n // pointercancel fires when the browser takes the gesture over, so it ends the drag too\n const handlePointerEnd = (e: PointerEvent) => {\n if (e.pointerId === pointerId) endDrag()\n }\n \n document.addEventListener('pointermove', handlePointerMove)\n document.addEventListener('pointerup', handlePointerEnd)\n document.addEventListener('pointercancel', handlePointerEnd)\n endDragRef.current = endDrag\n }\n \n // Keyboard navigation\n const handleKeyDown = (thumb: 'single' | 'min' | 'max') => (event: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return\n \n let valueChange = 0\n \n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n valueChange = step\n event.preventDefault()\n break\n case 'ArrowLeft':\n case 'ArrowDown':\n valueChange = -step\n event.preventDefault()\n break\n case 'PageUp':\n valueChange = step * 10\n event.preventDefault()\n break\n case 'PageDown':\n valueChange = -step * 10\n event.preventDefault()\n break\n case 'Home':\n if (isRange) {\n const [minVal, maxVal] = currentRangeValue\n if (thumb === 'min') {\n handleRangeChange(min, maxVal)\n } else {\n handleRangeChange(minVal, min)\n }\n } else {\n handleSingleChange(min)\n }\n event.preventDefault()\n return\n case 'End':\n if (isRange) {\n const [minVal, maxVal] = currentRangeValue\n if (thumb === 'min') {\n handleRangeChange(max, maxVal)\n } else {\n handleRangeChange(minVal, max)\n }\n } else {\n handleSingleChange(max)\n }\n event.preventDefault()\n return\n default:\n return\n }\n \n if (isRange) {\n const [minVal, maxVal] = currentRangeValue\n if (thumb === 'min') {\n handleRangeChange(minVal + valueChange, maxVal)\n } else {\n handleRangeChange(minVal, maxVal + valueChange)\n }\n } else {\n handleSingleChange(currentValue + valueChange)\n }\n }\n \n // Calculate positions\n const singlePercent = valueToPercent(currentValue)\n const [minPercent, maxPercent] = [\n valueToPercent(currentRangeValue[0]),\n valueToPercent(currentRangeValue[1])\n ]\n \n return (\n <StyledSliderContainer data-testid={dataTestId}>\n {label && (\n <StyledLabel htmlFor={generatedId} $disabled={disabled}>\n {label}\n </StyledLabel>\n )}\n \n <StyledSliderTrackContainer>\n <StyledTrack\n ref={trackRef}\n onClick={handleTrackClick}\n $disabled={disabled}\n >\n {isRange ? (\n <StyledTrackFill\n $disabled={disabled}\n style={{\n left: `${minPercent}%`,\n width: `${maxPercent - minPercent}%`,\n }}\n />\n ) : (\n <StyledTrackFill\n $disabled={disabled}\n style={{\n left: 0,\n width: `${singlePercent}%`,\n }}\n />\n )}\n \n {isRange ? (\n <>\n {/* Min thumb */}\n <StyledThumb\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-label={ariaLabel ? `${ariaLabel} minimum` : 'Minimum value'}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentRangeValue[0]}\n aria-valuetext={formatValue(currentRangeValue[0])}\n aria-disabled={disabled}\n aria-describedby={ariaDescribedBy}\n $disabled={disabled}\n $active={activeThumb === 'min'}\n $range=\"min\"\n style={{ left: `${minPercent}%`, '--slider-reach': `${(maxPercent - minPercent) / 2}cqw` } as React.CSSProperties}\n onPointerDown={(event) => handleThumbPointerDown('min', event)}\n onKeyDown={handleKeyDown('min')}\n >\n {showValueLabel && (\n <StyledValueLabel $disabled={disabled}>\n {formatValue(currentRangeValue[0])}\n </StyledValueLabel>\n )}\n </StyledThumb>\n \n {/* Max thumb */}\n <StyledThumb\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-label={ariaLabel ? `${ariaLabel} maximum` : 'Maximum value'}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentRangeValue[1]}\n aria-valuetext={formatValue(currentRangeValue[1])}\n aria-disabled={disabled}\n aria-describedby={ariaDescribedBy}\n $disabled={disabled}\n $active={activeThumb === 'max'}\n $range=\"max\"\n style={{ left: `${maxPercent}%`, '--slider-reach': `${(maxPercent - minPercent) / 2}cqw` } as React.CSSProperties}\n onPointerDown={(event) => handleThumbPointerDown('max', event)}\n onKeyDown={handleKeyDown('max')}\n >\n {showValueLabel && (\n <StyledValueLabel $disabled={disabled}>\n {formatValue(currentRangeValue[1])}\n </StyledValueLabel>\n )}\n </StyledThumb>\n </>\n ) : (\n <StyledThumb\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-label={ariaLabel || label || 'Slider value'}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentValue}\n aria-valuetext={formatValue(currentValue)}\n aria-disabled={disabled}\n aria-describedby={ariaDescribedBy}\n $disabled={disabled}\n $active={activeThumb === 'single'}\n style={{ left: `${singlePercent}%` }}\n onPointerDown={(event) => handleThumbPointerDown('single', event)}\n onKeyDown={handleKeyDown('single')}\n >\n {showValueLabel && (\n <StyledValueLabel $disabled={disabled}>\n {formatValue(currentValue)}\n </StyledValueLabel>\n )}\n </StyledThumb>\n )}\n </StyledTrack>\n </StyledSliderTrackContainer>\n \n <StyledMinMaxLabels>\n <span>{formatValue(min)}</span>\n <span>{formatValue(max)}</span>\n </StyledMinMaxLabels>\n </StyledSliderContainer>\n )\n}\n\nSlider.displayName = 'Slider'\n","import { useState, useRef, useEffect, KeyboardEvent } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { forcedColors, rowRadius } from '../../../lib/styleUtils'\n\nconst { semantic } = tokens\n\n/**\n * Individual tab configuration\n */\nexport interface Tab {\n /**\n * Unique identifier for the tab\n */\n id: string\n \n /**\n * Tab label text\n */\n label: string\n \n /**\n * Optional badge count to display\n */\n badge?: number\n \n /**\n * Whether this tab is disabled\n * @default false\n */\n disabled?: boolean\n}\n\n/**\n * Props for the TabBar component\n */\nexport interface TabBarProps {\n /**\n * Array of tab configurations\n */\n tabs: Tab[]\n \n /**\n * Currently active tab ID\n */\n activeTab: string\n \n /**\n * Callback when tab changes\n */\n onTabChange: (tabId: string) => void\n \n /**\n * Accessible label for the tab list\n */\n 'aria-label'?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\ninterface StyledTabProps {\n $isActive: boolean\n $disabled: boolean\n}\n\nconst StyledTabList = styled.div`\n display: flex;\n align-items: center;\n border-bottom: ${semantic.border.width.thin} solid ${semantic.color.border.default};\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n \n &::-webkit-scrollbar {\n height: ${tokens.component.tabBar.scrollbar.height};\n }\n \n &::-webkit-scrollbar-track {\n background: ${semantic.surface.raised};\n }\n \n &::-webkit-scrollbar-thumb {\n background: ${semantic.color.border.default};\n border-radius: ${semantic.radius.sm};\n }\n`\n\nconst StyledTab = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledTabProps>`\n display: inline-flex;\n align-items: center;\n gap: ${semantic.space[200]};\n padding: ${semantic.space[300]} ${semantic.space[400]};\n font: ${tokens.component.button.sizes.medium.font};\n white-space: nowrap;\n cursor: ${props => props.$disabled ? 'not-allowed' : 'pointer'};\n border: none;\n background: transparent;\n transition: ${semantic.motion.transition.feedback};\n position: relative;\n \n /* Selected tab: the light-blue selected treatment plus a blue underline (decisions 0016, 0020).\n The text darkens with the fill on hover and press so every state stays at least 4.5:1. */\n border-radius: ${rowRadius} ${rowRadius} 0 0;\n background-color: ${props => props.$isActive\n ? semantic.color.fill['accent-muted']\n : 'transparent'\n };\n color: ${props => props.$isActive\n ? semantic.color.text.accent\n : semantic.color.text.muted\n };\n\n &::after {\n content: '';\n position: absolute;\n bottom: -1px;\n left: 0;\n right: 0;\n height: ${semantic.border.width.thick};\n background-color: ${props => props.$isActive\n ? semantic.color.fill.accent\n : 'transparent'\n };\n transition: ${semantic.motion.transition.feedback};\n }\n\n /* Forced colours drop the fill, so the selected tab's underline carries its state in the\n system selection colour (decision 0038) */\n ${forcedColors} {\n &::after {\n forced-color-adjust: none;\n background-color: ${props => props.$isActive ? 'Highlight' : 'transparent'};\n }\n }\n\n &:hover:not(:disabled) {\n background-color: ${props => props.$isActive\n ? semantic.color.fill['accent-muted-hover']\n : 'transparent'\n };\n color: ${props => props.$isActive\n ? semantic.color.text.accent\n : semantic.color.text.default\n };\n }\n\n &:active:not(:disabled) {\n background-color: ${props => props.$isActive\n ? semantic.color.fill['accent-muted-pressed']\n : 'transparent'\n };\n color: ${props => props.$isActive\n ? semantic.color.text.accent\n : semantic.color.text.default\n };\n }\n\n /* Disabled state */\n opacity: ${props => props.$disabled ? '0.5' : '1'};\n \n /* Focus state */\n &:focus-visible {\n outline: ${semantic.border.focus};\n outline-offset: ${semantic.border.focusOffset};\n z-index: 1;\n }\n\n`\n\nconst StyledBadge = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: ${tokens.component.tabBar.badge.size};\n height: ${tokens.component.tabBar.badge.size};\n padding: 0 ${semantic.space[100]};\n font: ${tokens.component.tabBar.badge.typography};\n font-weight: ${tokens.component.tabBar.badge.fontWeight};\n border-radius: ${semantic.radius.full};\n background-color: ${semantic.color.fill.accent};\n color: ${semantic.color.text['on-fill']};\n`\n\n/**\n * TabBar component for tabbed navigation\n * \n * Provides accessible tab navigation with an underline style, keyboard support,\n * and optional badge counts. Follows ARIA tablist pattern.\n * \n * @example\n * ```tsx\n * const [activeTab, setActiveTab] = useState('all')\n * \n * <TabBar\n * tabs={[\n * { id: 'all', label: 'All', badge: 42 },\n * { id: 'pending', label: 'Pending', badge: 5 },\n * { id: 'completed', label: 'Completed' }\n * ]}\n * activeTab={activeTab}\n * onTabChange={setActiveTab}\n * />\n * ```\n */\nexport const TabBar: React.FC<TabBarProps> = ({\n tabs,\n activeTab,\n onTabChange,\n 'aria-label': ariaLabel = 'Tab navigation',\n 'data-testid': dataTestId\n}) => {\n const tabRefs = useRef<(HTMLButtonElement | null)[]>([])\n const [focusedIndex, setFocusedIndex] = useState<number>(() => \n tabs.findIndex(tab => tab.id === activeTab)\n )\n \n // Update focused index when active tab changes externally\n useEffect(() => {\n const newIndex = tabs.findIndex(tab => tab.id === activeTab)\n if (newIndex !== -1) {\n setFocusedIndex(newIndex)\n }\n }, [activeTab, tabs])\n \n const handleTabClick = (tab: Tab, index: number) => {\n if (!tab.disabled) {\n onTabChange(tab.id)\n setFocusedIndex(index)\n }\n }\n \n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>, index: number) => {\n let newIndex = index\n \n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n // Find previous non-disabled tab\n newIndex = index - 1\n while (newIndex >= 0 && tabs[newIndex].disabled) {\n newIndex--\n }\n if (newIndex < 0) {\n // Wrap to last non-disabled tab\n newIndex = tabs.length - 1\n while (newIndex > index && tabs[newIndex].disabled) {\n newIndex--\n }\n }\n break\n \n case 'ArrowRight':\n event.preventDefault()\n // Find next non-disabled tab\n newIndex = index + 1\n while (newIndex < tabs.length && tabs[newIndex].disabled) {\n newIndex++\n }\n if (newIndex >= tabs.length) {\n // Wrap to first non-disabled tab\n newIndex = 0\n while (newIndex < index && tabs[newIndex].disabled) {\n newIndex++\n }\n }\n break\n \n case 'Home':\n event.preventDefault()\n // Focus first non-disabled tab\n newIndex = 0\n while (newIndex < tabs.length && tabs[newIndex].disabled) {\n newIndex++\n }\n break\n \n case 'End':\n event.preventDefault()\n // Focus last non-disabled tab\n newIndex = tabs.length - 1\n while (newIndex >= 0 && tabs[newIndex].disabled) {\n newIndex--\n }\n break\n \n default:\n return\n }\n \n if (newIndex !== index && newIndex >= 0 && newIndex < tabs.length) {\n setFocusedIndex(newIndex)\n tabRefs.current[newIndex]?.focus()\n }\n }\n \n return (\n <StyledTabList\n role=\"tablist\"\n aria-label={ariaLabel}\n data-testid={dataTestId}\n >\n {tabs.map((tab, index) => (\n <StyledTab\n key={tab.id}\n ref={el => { tabRefs.current[index] = el }}\n $isActive={tab.id === activeTab}\n $disabled={tab.disabled || false}\n role=\"tab\"\n aria-selected={tab.id === activeTab}\n aria-disabled={tab.disabled || false}\n tabIndex={index === focusedIndex ? 0 : -1}\n disabled={tab.disabled}\n onClick={() => handleTabClick(tab, index)}\n onKeyDown={(e) => handleKeyDown(e, index)}\n data-testid={`${dataTestId}-tab-${tab.id}`}\n >\n {tab.label}\n {typeof tab.badge === 'number' && tab.badge > 0 && (\n <StyledBadge \n aria-label={`${tab.badge} items`}\n >\n {tab.badge > 99 ? '99+' : tab.badge}\n </StyledBadge>\n )}\n </StyledTab>\n ))}\n </StyledTabList>\n )\n}\n\nTabBar.displayName = 'TabBar'\n","import { InputHTMLAttributes, forwardRef, useId } from 'react'\nimport styled from 'styled-components'\nimport { StyledInputBase } from './InputBase'\nimport { Stack } from '../../atoms/Stack/Stack'\nimport tokens from '@/lib/cssTokens'\n\nconst { field } = tokens.component\n// Gaps come from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst { space } = tokens.semantic\n\n/**\n * Props for the TextField component\n */\nexport interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n /**\n * Label text for the input\n */\n label?: string\n \n /**\n * Helper text displayed below the input\n */\n helperText?: string\n \n /**\n * Error message to display\n */\n error?: string\n \n /**\n * Whether the field is required\n * @default false\n */\n required?: boolean\n \n /**\n * Whether the input is disabled\n * @default false\n */\n disabled?: boolean\n \n /**\n * Input type\n * @default 'text'\n */\n type?: 'text' | 'email' | 'tel' | 'url' | 'search'\n \n /**\n * Unique identifier for the input\n * Generated automatically if not provided\n */\n id?: string\n \n /**\n * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\nconst StyledFieldContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${space[200]};\n width: 100%;\n`\n\nconst StyledLabel = styled.label`\n display: flex;\n align-items: center;\n gap: ${space[100]};\n font: ${field.label.typography};\n color: ${field.label.color};\n\n &[data-disabled='true'] {\n color: ${field.label.colorDisabled};\n }\n`\n\nconst StyledRequiredIndicator = styled.span`\n color: ${field.requiredIndicator.color};\n font-weight: ${field.requiredIndicator.fontWeight};\n`\n\nconst StyledHelperText = styled.div<{ $hasError?: boolean }>`\n font: ${field.helperText.typography};\n color: ${({ $hasError }) =>\n $hasError\n ? field.helperText.colorError\n : field.helperText.color\n };\n`\n\n/**\n * TextField component for text input with label, helper text, and error states\n * \n * @example\n * ```tsx\n * <TextField \n * label=\"Email\" \n * type=\"email\"\n * helperText=\"We'll never share your email\"\n * required\n * />\n * ```\n */\nexport const TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n label,\n helperText,\n error,\n required = false,\n disabled = false,\n type = 'text',\n id: providedId,\n 'data-testid': dataTestId,\n ...inputProps\n },\n ref\n ) => {\n // Generate unique ID if not provided\n const generatedId = useId()\n const id = providedId || generatedId\n \n // IDs for ARIA relationships\n const errorId = error ? `${id}-error` : undefined\n const helperId = helperText && !error ? `${id}-helper` : undefined\n const describedBy = [errorId, helperId].filter(Boolean).join(' ') || undefined\n \n const hasError = Boolean(error)\n \n return (\n <StyledFieldContainer data-testid={dataTestId}>\n {label && (\n <StyledLabel \n htmlFor={id}\n data-disabled={disabled}\n >\n {label}\n {required && (\n <StyledRequiredIndicator aria-label=\"required\">\n *\n </StyledRequiredIndicator>\n )}\n </StyledLabel>\n )}\n \n <StyledInputBase\n ref={ref}\n id={id}\n type={type}\n disabled={disabled}\n required={required}\n aria-required={required}\n aria-invalid={hasError}\n aria-describedby={describedBy}\n $hasError={hasError}\n $disabled={disabled}\n {...inputProps}\n />\n \n {error && (\n <StyledHelperText\n id={errorId}\n role=\"alert\"\n aria-live=\"polite\"\n $hasError={true}\n >\n {error}\n </StyledHelperText>\n )}\n \n {helperText && !error && (\n <StyledHelperText id={helperId}>\n {helperText}\n </StyledHelperText>\n )}\n </StyledFieldContainer>\n )\n }\n)\n\nTextField.displayName = 'TextField'\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Avatar } from '../../atoms/Avatar'\nimport { StatusLabel } from '../../atoms/StatusLabel'\nimport { CategoryLabel, type CategoryColor } from '../../atoms/CategoryLabel'\nimport { MoneyDisplay, MoneyDisplayVariant } from '../../atoms/MoneyDisplay'\nimport { Icon, IconName } from '../../atoms/Icon'\nimport { DateFormatter } from '../../atoms/DateFormatter'\nimport { Typography } from '../../atoms/Typography'\nimport { Stack } from '../../atoms/Stack'\nimport tokens from '../../../lib/cssTokens'\nimport { interactiveRow } from '../../../lib/styleUtils'\n\nexport type TransactionStatus = 'completed' | 'pending' | 'failed'\nexport type TransactionCategory = 'shopping' | 'dining' | 'transport' | 'entertainment' | 'bills' | 'other'\n\nexport interface TransactionListItemProps {\n /** Merchant or transaction name */\n merchant: string\n \n /** Transaction amount (positive for income, negative for expense) */\n amount: number\n \n /** Transaction date */\n date: Date | string\n \n /** Transaction status */\n status?: TransactionStatus\n \n /** Transaction category */\n category?: TransactionCategory\n \n /** Optional merchant logo URL */\n merchantLogo?: string\n \n /** Optional description or note */\n description?: string\n \n /** Whether this transaction has a receipt attached */\n hasReceipt?: boolean\n \n /** Whether this transaction has notes attached */\n hasNote?: boolean\n \n /** Currency code */\n currency?: string\n \n /** Click handler for the transaction */\n onClick?: () => void\n \n /** Test identifier for automated testing */\n 'data-testid'?: string\n}\n\ninterface StyledContainerProps {\n $clickable?: boolean\n}\n\nconst StyledContainer = styled.div<StyledContainerProps>`\n display: flex;\n align-items: center;\n min-height: ${tokens.semantic.size.row.lg};\n padding: ${tokens.semantic.space.inset.md}; /* follows density with the row's height (decision 0051) */\n background-color: ${tokens.semantic.surface.base};\n border-bottom: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border.default};\n gap: ${tokens.semantic.space[300]};\n transition: background-color ${tokens.semantic.motion.duration.moderate} ${tokens.semantic.motion.easing.decelerate};\n \n /* A clickable row uses the shared row states (decision 0030) */\n ${({ $clickable }) => $clickable && `\n cursor: pointer;\n ${interactiveRow()}\n \n &:focus-visible {\n outline: ${tokens.semantic.border.focus};\n outline-offset: calc(-1 * ${tokens.semantic.border.focusOffset});\n }\n `}\n`\n\nconst StyledAvatarSection = styled.div`\n flex-shrink: 0;\n`\n\nconst StyledMainContent = styled.div`\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: none;\n`\n\nconst StyledTopRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${tokens.semantic.space[200]};\n`\n\nconst StyledMerchantSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.space[200]};\n min-width: 0;\n flex: 1;\n`\n\nconst StyledBottomRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${tokens.semantic.space[200]};\n`\n\nconst StyledMetadata = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.space[200]};\n`\n\nconst StyledIconIndicator = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.space[100]};\n color: ${tokens.semantic.color.icon.muted};\n`\n\nconst StyledTruncatedText = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\n// Map categories to CategoryLabel configurations\nconst categoryConfig: Record<TransactionCategory, { color: CategoryColor; icon: IconName; label: string }> = {\n // Display colours carry no meaning (decision 0043); five coloured categories share four colours,\n // so the icon and label tell dining and bills apart\n shopping: { color: 'magenta', icon: 'paper', label: 'Shopping' },\n dining: { color: 'rose', icon: 'paper', label: 'Dining' },\n transport: { color: 'periwinkle', icon: 'paper', label: 'Transport' },\n entertainment: { color: 'olive', icon: 'star', label: 'Entertainment' },\n bills: { color: 'rose', icon: 'paper', label: 'Bills' },\n other: { color: 'gray', icon: 'paper', label: 'Other' }\n}\n\n\n/**\n * TransactionListItem component\n * \n * Displays a single transaction in a list with merchant info, amount, date,\n * status, and optional metadata (category, receipt, notes). Minimum height 72px\n * with interactive states for clickable items.\n * \n * Composes: Avatar, CategoryLabel, StatusLabel, MoneyDisplay, Icon, DateFormatter, Typography, Stack\n */\nexport const TransactionListItem: React.FC<TransactionListItemProps> = ({\n merchant,\n amount,\n date,\n status = 'completed',\n category,\n merchantLogo,\n description,\n hasReceipt = false,\n hasNote = false,\n currency = 'AUD',\n onClick,\n 'data-testid': dataTestId\n}) => {\n const isClickable = !!onClick\n \n // Determine amount variant\n const amountVariant: MoneyDisplayVariant = amount > 0 ? 'positive' : amount < 0 ? 'negative' : 'default'\n \n // Get category configuration\n const categoryData = category ? categoryConfig[category] : undefined\n \n \n const handleClick = () => {\n if (isClickable && onClick) {\n onClick()\n }\n }\n \n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (isClickable && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n onClick?.()\n }\n }\n \n return (\n <StyledContainer\n $clickable={isClickable}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n tabIndex={isClickable ? 0 : undefined}\n role={isClickable ? 'button' : undefined}\n // The name replaces the row's content, so it repeats a status the row shows (pending, failed)\n aria-label={isClickable ? `${merchant} transaction, ${amount < 0 ? 'expense' : 'income'} of ${Math.abs(amount)}${status === 'completed' ? '' : `, ${status}`}` : undefined}\n data-testid={dataTestId}\n >\n <StyledAvatarSection>\n <Avatar \n name={merchant}\n picture={merchantLogo}\n size=\"md\"\n />\n </StyledAvatarSection>\n \n <StyledMainContent>\n <StyledTopRow>\n <StyledMerchantSection>\n <StyledTruncatedText>\n <Typography variant=\"body\">\n {merchant}\n </Typography>\n </StyledTruncatedText>\n {categoryData && (\n <CategoryLabel\n color={categoryData.color}\n icon={categoryData.icon}\n size=\"medium\"\n variant=\"minimal\"\n aria-label={`Category: ${categoryData.label}`}\n >\n {categoryData.label}\n </CategoryLabel>\n )}\n {/* The status pattern shows a status that needs a look (decision 0045 §4): failed with its\n shape and label, pending as neutral text. Completed is the quiet default. */}\n {status !== 'completed' && (\n <StatusLabel status={status} size=\"small\" liveRegion={false} />\n )}\n </StyledMerchantSection>\n \n <MoneyDisplay\n amount={amount}\n currency={currency}\n variant={amountVariant}\n size=\"medium\"\n weight=\"medium\"\n showSign\n data-testid={dataTestId ? `${dataTestId}-amount` : undefined}\n />\n </StyledTopRow>\n \n <StyledBottomRow>\n <StyledMetadata>\n <DateFormatter \n dateString={typeof date === 'string' ? date : date.toISOString()} \n mode=\"smart\"\n data-testid={dataTestId ? `${dataTestId}-date` : undefined}\n />\n {description && (\n <StyledTruncatedText>\n <Typography \n variant=\"small\" \n color=\"subdued\"\n >\n • {description}\n </Typography>\n </StyledTruncatedText>\n )}\n </StyledMetadata>\n \n {(hasReceipt || hasNote) && (\n <StyledIconIndicator>\n {hasReceipt && (\n <Icon name=\"fileDocSearch\" size=\"xs\" aria-label=\"Has receipt\" />\n )}\n {hasNote && (\n <Icon name=\"paper\" size=\"xs\" aria-label=\"Has note\" />\n )}\n </StyledIconIndicator>\n )}\n </StyledBottomRow>\n </StyledMainContent>\n </StyledContainer>\n )\n}\n","import React, { useEffect } from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { interactiveRow } from '../../../lib/styleUtils'\nimport { Avatar } from '../../atoms/Avatar'\nimport { Icon } from '../../atoms/Icon'\nimport { Tooltip } from '../../atoms/Tooltip'\nimport { Menu, MenuDivider, MenuGroup, MenuItemRadio } from '../Menu'\nimport { useSidebarNav } from '../SidebarNavItem/SidebarNavContext'\n\nconst { semantic } = tokens\nconst { space, color, motion, radius, size, border, typography } = semantic\n\nexport interface Workspace {\n /** Identifies the workspace in `value` and `onChange` */\n id: string\n /** The workspace's name */\n name: string\n /** The workspace's logo or picture, shown in its Avatar */\n picture?: string\n /** Secondary text in the menu, such as the plan */\n description?: string\n}\n\nexport interface WorkspaceSwitcherProps {\n /** The workspaces to choose from */\n workspaces: Workspace[]\n /** The current workspace's id */\n value: string\n /** Called with a workspace's id when it's chosen */\n onChange: (id: string) => void\n /**\n * The label of the workspaces group in the menu.\n * @default 'Workspaces'\n */\n label?: string\n /**\n * Actions after the workspaces, such as `<MenuItem>Create workspace</MenuItem>`. They can use\n * everything a Menu item supports.\n */\n children?: React.ReactNode\n /** Test identifier for the trigger */\n 'data-testid'?: string\n}\n\nconst Trigger = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $collapsed: boolean }>`\n display: flex;\n align-items: center;\n gap: ${space[200]};\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n min-height: ${size.row.sm};\n padding: ${space.inset.xs} ${space.inset.sm};\n border: none;\n border-radius: ${radius.md};\n background: none;\n font: ${typography.label};\n color: ${color.text.default};\n text-align: left;\n cursor: pointer;\n transition: background-color ${motion.duration.fast} ${motion.easing.decelerate};\n\n ${interactiveRow()}\n\n ${({ $collapsed }) =>\n $collapsed &&\n css`\n justify-content: center;\n padding: ${space.inset.xs};\n `}\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: ${border.focus};\n outline-offset: calc(-1 * ${border.focusOffset});\n }\n`\n\nconst Name = styled.span`\n flex: 1;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`\n\nconst Decoration = styled.span`\n display: inline-flex;\n flex-shrink: 0;\n color: ${color.text.muted};\n`\n\n/**\n * Shows the current workspace and switches between workspaces (#330), from SidebarNav's header.\n * Built on Menu: a labelled group of the workspaces as radio items, then any actions.\n */\nexport const WorkspaceSwitcher = ({\n workspaces,\n value,\n onChange,\n label = 'Workspaces',\n children,\n 'data-testid': dataTestId,\n}: WorkspaceSwitcherProps) => {\n const { collapsed } = useSidebarNav()\n const match = workspaces.find((workspace) => workspace.id === value)\n const fallback = !match && workspaces.length > 0 ? workspaces[0].name : undefined\n // Showing the first keeps the header usable, but the app's value is wrong, so say so, once per value\n useEffect(() => {\n if (fallback) console.warn(`WorkspaceSwitcher: no workspace has the id \"${value}\"; showing \"${fallback}\"`)\n }, [value, fallback])\n const current = match ?? workspaces[0]\n if (!current) return null\n\n const trigger = (\n <Trigger\n type=\"button\"\n $collapsed={collapsed}\n // In the rail only the Avatar shows, so the name moves to aria-label\n aria-label={collapsed ? current.name : undefined}\n data-testid={dataTestId}\n >\n {/* Avatar names itself as an image; the button's name is the workspace's */}\n <Decoration aria-hidden=\"true\">\n <Avatar name={current.name} picture={current.picture} size=\"xs\" />\n </Decoration>\n {!collapsed && (\n <>\n <Name>{current.name}</Name>\n <Decoration aria-hidden=\"true\">\n <Icon name=\"caretDown\" size=\"sm\" iconColor=\"inherit\" />\n </Decoration>\n </>\n )}\n </Trigger>\n )\n\n return (\n <Menu\n trigger={collapsed ? <Tooltip text={current.name} side=\"right\">{trigger}</Tooltip> : trigger}\n side={collapsed ? 'right' : 'bottom'}\n align=\"start\"\n // Lines up with the full-width trigger beneath it (issue 350)\n matchTriggerWidth\n >\n <MenuGroup label={label}>\n {workspaces.map((workspace) => (\n <MenuItemRadio\n key={workspace.id}\n checked={workspace.id === current.id}\n // Choosing the current workspace again changes nothing\n onSelect={() => workspace.id !== current.id && onChange(workspace.id)}\n icon={<Avatar name={workspace.name} picture={workspace.picture} size=\"xs\" />}\n description={workspace.description}\n textValue={workspace.name}\n >\n {workspace.name}\n </MenuItemRadio>\n ))}\n </MenuGroup>\n {children && (\n <>\n <MenuDivider />\n <MenuGroup>{children}</MenuGroup>\n </>\n )}\n </Menu>\n )\n}\n\nWorkspaceSwitcher.displayName = 'WorkspaceSwitcher'\n","import React, { useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/lib/cssTokens'\nimport { forcedColors, reducedMotion, rowRadius } from '../../../lib/styleUtils'\nimport { IconButton } from '../../atoms/IconButton'\nimport { Tooltip } from '../../atoms/Tooltip'\nimport { isKeyboardFocus } from '../../../lib/keyboardFocus'\nimport { SidebarNavContext, type SidebarNavContextValue } from '../../molecules/SidebarNavItem/SidebarNavContext'\nimport { EXPANDED_WIDTH_VAR, NAV_PADDING, SCROLLBAR_VAR, fade } from '../../molecules/SidebarNavItem/sidebarNavMotion'\n\nconst { semantic, component } = tokens\nconst { space, motion, color, size } = semantic\nconst { width: widths } = component.sidebarNav\n\nexport type SidebarNavWidth = 'narrow' | 'default' | 'wide'\n\nexport interface SidebarNavProps {\n /** Names the navigation landmark, such as \"Main\" or \"Workspace\" */\n label: string\n /**\n * The body: SidebarNavItems and SidebarNavSections, in order, wrapped in components or Fragments\n * if you like. It's one list, and scrolls when it's too tall.\n */\n children: React.ReactNode\n /** Content above the body, such as a WorkspaceSwitcher. The collapse toggle sits beside it. */\n header?: React.ReactNode\n /** Content below the body, such as an upgrade prompt. Hidden in the rail. */\n footer?: React.ReactNode\n /**\n * The expanded width. Collapsed, it's always the rail.\n * @default 'default'\n */\n width?: SidebarNavWidth\n /** Whether it's the icon rail (controlled). Use with `onCollapsedChange`. */\n collapsed?: boolean\n /**\n * Whether it starts as the rail (uncontrolled). Saving the state between visits is the\n * product's job.\n * @default false\n */\n defaultCollapsed?: boolean\n /** Called when the toggle collapses or expands it */\n onCollapsedChange?: (collapsed: boolean) => void\n /**\n * Whether it has a collapse toggle. Turn it off where it can't collapse, such as inside a Sheet.\n * @default true\n */\n collapsible?: boolean\n /**\n * A router's link component for internal URLs, such as Next's `Link`, used by every item\n * (decision 0008). Without one, items render plain links.\n */\n linkComponent?: SidebarNavContextValue['linkComponent']\n /** Test identifier for the nav */\n 'data-testid'?: string\n}\n\nconst Nav = styled.nav.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $width: string }>`\n display: flex;\n flex-direction: column;\n gap: ${space[200]};\n box-sizing: border-box;\n /* Its width is set; in a flex app shell it mustn't shrink to make room */\n flex-shrink: 0;\n width: ${({ $width }) => $width};\n height: 100%;\n padding: ${space[200]};\n overflow: hidden;\n /* Quiet chrome (P1): the page's own background, with no edge of its own (issue 348). The width\n moves with everything inside it, decelerating (0037) */\n transition: width ${motion.duration.moderate} ${motion.easing.decelerate};\n\n ${reducedMotion} {\n transition: none;\n }\n`\n\n// The header holds two toggles in fixed places that cross-fade (issue 348): collapse beside the\n// header content, and expand in the content's place, where the rail shows it. Nothing moves.\nconst Header = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n gap: ${space[100]};\n min-height: ${size.control.sm};\n`\n\nconst HeaderContent = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $hidden: boolean }>`\n flex: 1;\n min-width: 0;\n overflow: hidden;\n ${({ $hidden }) => fade($hidden)}\n\n /* Keeps its expanded width, so the nav's edge clips it rather than it reflowing mid-move */\n & > div {\n width: calc(var(${EXPANDED_WIDTH_VAR}) - 2 * ${NAV_PADDING} - ${size.control.sm} - ${space[100]});\n }\n`\n\nconst CollapseSlot = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $hidden: boolean }>`\n display: inline-flex;\n flex-shrink: 0;\n margin-left: auto;\n ${({ $hidden }) => fade($hidden)}\n`\n\n// Centred in the rail, where the header content starts\nconst ExpandSlot = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $hidden: boolean }>`\n position: absolute;\n top: 0;\n bottom: 0;\n left: calc((${component.sidebarNav.width.rail} - 2 * ${NAV_PADDING} - ${size.control.sm}) / 2);\n display: flex;\n align-items: center;\n ${({ $hidden }) => fade($hidden)}\n`\n\nconst Body = styled.div`\n flex: 1;\n min-height: 0;\n overflow-x: hidden;\n overflow-y: auto;\n`\n\n// The rows and the highlight share this box, so the highlight scrolls with the rows\nconst Content = styled.div`\n position: relative;\n isolation: isolate;\n display: flex;\n flex-direction: column;\n\n & [data-sidebar-row] {\n position: relative;\n z-index: 1;\n }\n`\n\nconst List = styled.ul`\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n flex-direction: column;\n`\n\ninterface HighlightBox {\n top: number\n left: number\n width: number\n height: number\n}\n\n// One highlight glides to the hovered or keyboard-focused row (0053): the row hover colour,\n// moving over duration.fast. It jumps under reduced motion and hides in forced colours, where\n// rows outline themselves instead.\nconst Highlight = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $visible: boolean; $instant: boolean }>`\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n border-radius: ${rowRadius};\n background-color: ${color.fill.muted};\n pointer-events: none;\n opacity: ${({ $visible }) => ($visible ? 1 : 0)};\n transition: ${({ $instant }) =>\n $instant\n ? `opacity ${motion.duration.fast} ${motion.easing.decelerate}`\n : `transform ${motion.duration.fast} ${motion.easing.decelerate},\n height ${motion.duration.fast} ${motion.easing.decelerate},\n width ${motion.duration.fast} ${motion.easing.decelerate},\n opacity ${motion.duration.fast} ${motion.easing.decelerate}`};\n\n ${reducedMotion} {\n transition: opacity ${motion.duration.fast} ${motion.easing.decelerate};\n }\n\n ${forcedColors} {\n display: none;\n }\n`\n\n// The footer fades out in the rail, keeping its expanded width so it doesn't reflow mid-move\nconst Footer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$'),\n})<{ $hidden: boolean }>`\n flex-shrink: 0;\n overflow: hidden;\n ${({ $hidden }) => fade($hidden)}\n\n & > div {\n width: calc(var(${EXPANDED_WIDTH_VAR}) - 2 * ${NAV_PADDING});\n }\n`\n\n/**\n * A product's sidebar navigation (#331): a header, a scrolling body of items and sections, and a\n * footer, that collapses to an icon rail. Row heights follow density (0051); the width is a prop.\n * On small screens, place it in a Sheet with `collapsible={false}`.\n */\nexport const SidebarNav = ({\n label,\n children,\n header,\n footer,\n width = 'default',\n collapsed: collapsedProp,\n defaultCollapsed = false,\n onCollapsedChange,\n collapsible = true,\n linkComponent,\n 'data-testid': dataTestId,\n}: SidebarNavProps) => {\n const [uncontrolledCollapsed, setUncontrolledCollapsed] = useState(defaultCollapsed)\n const isControlled = collapsedProp !== undefined\n const collapsed = collapsible && (isControlled ? collapsedProp : uncontrolledCollapsed)\n\n const contentRef = useRef<HTMLDivElement>(null)\n const navRef = useRef<HTMLElement>(null)\n const bodyRef = useRef<HTMLDivElement>(null)\n\n // A classic scrollbar narrows every row, so rows need its width. Measured while expanded (the rail\n // only clips what rows hold) and written straight to a CSS variable, so it re-renders nothing.\n useEffect(() => {\n const nav = navRef.current\n const body = bodyRef.current\n if (!nav || !body || collapsed) return\n const measure = () => nav.style.setProperty(SCROLLBAR_VAR, `${body.offsetWidth - body.clientWidth}px`)\n measure()\n if (typeof ResizeObserver === 'undefined') return\n const observer = new ResizeObserver(measure)\n observer.observe(body)\n if (contentRef.current) observer.observe(contentRef.current)\n return () => observer.disconnect()\n }, [collapsed])\n const [highlight, setHighlight] = useState<{ box: HighlightBox | null; visible: boolean; instant: boolean }>({\n box: null,\n visible: false,\n instant: true,\n })\n\n // Focus follows the toggle: the one pressed fades away, so focus moves to the one now shown\n const collapseSlot = useRef<HTMLSpanElement>(null)\n const expandSlot = useRef<HTMLSpanElement>(null)\n // Which state a toggle asked for, and when: focus moves only if that state arrives promptly, so a\n // controlled parent that declined the change can't have focus jump on some later change\n const focusToggle = useRef<{ to: boolean; at: number } | null>(null)\n\n const toggle = () => {\n const next = !collapsed\n focusToggle.current = { to: next, at: Date.now() }\n if (!isControlled) setUncontrolledCollapsed(next)\n onCollapsedChange?.(next)\n }\n\n useEffect(() => {\n const request = focusToggle.current\n focusToggle.current = null\n if (!request || request.to !== collapsed || Date.now() - request.at > 1000) return\n const slot = collapsed ? expandSlot.current : collapseSlot.current\n slot?.querySelector('button')?.focus()\n }, [collapsed])\n\n const hide = () => setHighlight((state) => ({ ...state, visible: false }))\n\n // Collapsing or expanding moves every row, so the highlight's box is stale: hide it until the\n // pointer or focus finds a row again (adjusted during render, React's pattern for a prop change)\n const [layout, setLayout] = useState(collapsed)\n if (layout !== collapsed) {\n setLayout(collapsed)\n setHighlight((state) => ({ ...state, visible: false, instant: true }))\n }\n\n // Move the highlight to a row, or step aside for the current page's row, which has its own fill\n const highlightRow = (target: EventTarget | null) => {\n const content = contentRef.current\n const row = target instanceof Element ? target.closest<HTMLElement>('[data-sidebar-row]') : null\n if (!content || !row || !content.contains(row) || row.getAttribute('aria-current') === 'page') return hide()\n const outer = content.getBoundingClientRect()\n const box = row.getBoundingClientRect()\n setHighlight((state) => ({\n box: { top: box.top - outer.top, left: box.left - outer.left, width: box.width, height: box.height },\n visible: true,\n // Appearing, it starts at the row rather than sliding from where it last was\n instant: !state.visible,\n }))\n }\n\n const context: SidebarNavContextValue = { collapsed, linkComponent, glide: true, inNav: true }\n\n // The header content keeps its expanded layout: it fades out in the rail rather than turning into\n // a rail version of itself mid-move\n const headerContext: SidebarNavContextValue = { ...context, collapsed: false }\n\n return (\n <SidebarNavContext.Provider value={context}>\n <Nav\n ref={navRef}\n aria-label={label}\n $width={collapsed ? widths.rail : widths[width]}\n data-collapsed={collapsed || undefined}\n data-testid={dataTestId}\n style={{ [EXPANDED_WIDTH_VAR]: widths[width] } as React.CSSProperties}\n >\n {(header || collapsible) && (\n <Header>\n {header && (\n <HeaderContent $hidden={collapsed}>\n <div>\n <SidebarNavContext.Provider value={headerContext}>{header}</SidebarNavContext.Provider>\n </div>\n </HeaderContent>\n )}\n {collapsible && (\n <>\n <CollapseSlot ref={collapseSlot} $hidden={collapsed}>\n <Tooltip text=\"Collapse sidebar\" side=\"bottom\">\n <IconButton\n variant=\"naked\"\n size=\"small\"\n iconName=\"sidebar\"\n aria-label=\"Collapse sidebar\"\n aria-expanded\n onClick={toggle}\n />\n </Tooltip>\n </CollapseSlot>\n <ExpandSlot ref={expandSlot} $hidden={!collapsed}>\n <Tooltip text=\"Expand sidebar\" side=\"right\">\n <IconButton\n variant=\"naked\"\n size=\"small\"\n iconName=\"sidebar\"\n aria-label=\"Expand sidebar\"\n aria-expanded={false}\n onClick={toggle}\n />\n </Tooltip>\n </ExpandSlot>\n </>\n )}\n </Header>\n )}\n <Body ref={bodyRef}>\n <Content\n ref={contentRef}\n onPointerOver={(event) => event.pointerType !== 'touch' && highlightRow(event.target)}\n onPointerLeave={hide}\n onFocus={(event) => isKeyboardFocus(event.target) && highlightRow(event.target)}\n onBlur={(event) => {\n if (!contentRef.current?.contains(event.relatedTarget as Node)) hide()\n }}\n >\n <Highlight\n aria-hidden=\"true\"\n data-sidebar-highlight=\"\"\n $visible={highlight.visible}\n $instant={highlight.instant}\n style={\n highlight.box\n ? {\n transform: `translate(${highlight.box.left}px, ${highlight.box.top}px)`,\n width: highlight.box.width,\n height: highlight.box.height,\n }\n : undefined\n }\n />\n {/* One list: items are its items, and each section is an item holding its own list */}\n <List>{children}</List>\n </Content>\n </Body>\n {footer && (\n <Footer $hidden={collapsed}>\n <div>{footer}</div>\n </Footer>\n )}\n </Nav>\n </SidebarNavContext.Provider>\n )\n}\n\nSidebarNav.displayName = 'SidebarNav'\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\n\nimport type { Tokens } from '../../../types/tokens'\n\n/**\n * A grid gap: a `base.dimension` step (the 4px scale, so `4` is 16px), or `auto`. Before 3.0 the\n * gap props took `base.spacing` keys, which had the same values (#188).\n */\ntype GridGap = keyof Tokens['base']['dimension'] | 'auto'\n\n// Exception to decision 0014: the gap props are typed as base dimension keys (public API),\n// so they are looked up in the base tier until they accept semantic keys.\nconst gapSpacing: Record<GridGap, string> = {\n // eslint-disable-next-line no-restricted-syntax\n ...tokens.base.dimension,\n // eslint-disable-next-line no-restricted-syntax\n auto: tokens.base.spacing.auto\n}\n\n// Breakpoints using base tokens\nconst breakpoints = {\n xs: tokens.semantic.breakpoint.xs,\n sm: tokens.semantic.breakpoint.sm,\n md: tokens.semantic.breakpoint.md,\n lg: tokens.semantic.breakpoint.lg,\n xl: tokens.semantic.breakpoint.xl,\n '2xl': tokens.semantic.breakpoint['2xl'],\n}\n\n// Media query helpers\nconst media = {\n xs: `@media (min-width: ${breakpoints.xs})`,\n sm: `@media (min-width: ${breakpoints.sm})`,\n md: `@media (min-width: ${breakpoints.md})`,\n lg: `@media (min-width: ${breakpoints.lg})`,\n xl: `@media (min-width: ${breakpoints.xl})`,\n '2xl': `@media (min-width: ${breakpoints['2xl']})`,\n}\n\n// Base Grid Container\ninterface GridProps {\n cols?: number\n gap?: GridGap\n gapX?: GridGap\n gapY?: GridGap\n className?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n children: React.ReactNode\n}\n\nconst GridContainer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $cols: number\n $gap?: string\n $gapX?: string\n $gapY?: string\n}>`\n display: grid;\n grid-template-columns: repeat(${props => props.$cols}, minmax(0, 1fr));\n \n ${props => props.$gap && css`gap: ${props.$gap};`}\n ${props => props.$gapX && css`column-gap: ${props.$gapX};`}\n ${props => props.$gapY && css`row-gap: ${props.$gapY};`}\n`\n\nexport const Grid: React.FC<GridProps> = ({ \n cols = 12, \n gap, \n gapX, \n gapY, \n className, \n 'data-testid': dataTestId,\n children \n}) => (\n <GridContainer\n $cols={cols}\n $gap={gap ? gapSpacing[gap] : undefined}\n $gapX={gapX ? gapSpacing[gapX] : undefined}\n $gapY={gapY ? gapSpacing[gapY] : undefined}\n className={className}\n data-testid={dataTestId}\n >\n {children}\n </GridContainer>\n)\n\n// Grid Column Component\ninterface GridColProps {\n span?: number\n spanSm?: number\n spanMd?: number\n spanLg?: number\n spanXl?: number\n order?: number\n orderSm?: number\n orderMd?: number\n orderLg?: number\n orderXl?: number\n className?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n children: React.ReactNode\n}\n\nconst GridColContainer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $span?: number\n $spanSm?: number\n $spanMd?: number\n $spanLg?: number\n $spanXl?: number\n $order?: number\n $orderSm?: number\n $orderMd?: number\n $orderLg?: number\n $orderXl?: number\n}>`\n ${props => props.$span && css`grid-column: span ${props.$span} / span ${props.$span};`}\n ${props => props.$order !== undefined && css`order: ${props.$order};`}\n \n ${props => props.$spanSm && css`\n ${media.sm} {\n grid-column: span ${props.$spanSm} / span ${props.$spanSm};\n }\n `}\n \n ${props => props.$spanMd && css`\n ${media.md} {\n grid-column: span ${props.$spanMd} / span ${props.$spanMd};\n }\n `}\n \n ${props => props.$spanLg && css`\n ${media.lg} {\n grid-column: span ${props.$spanLg} / span ${props.$spanLg};\n }\n `}\n \n ${props => props.$spanXl && css`\n ${media.xl} {\n grid-column: span ${props.$spanXl} / span ${props.$spanXl};\n }\n `}\n \n ${props => props.$orderSm !== undefined && css`\n ${media.sm} {\n order: ${props.$orderSm};\n }\n `}\n \n ${props => props.$orderMd !== undefined && css`\n ${media.md} {\n order: ${props.$orderMd};\n }\n `}\n \n ${props => props.$orderLg !== undefined && css`\n ${media.lg} {\n order: ${props.$orderLg};\n }\n `}\n \n ${props => props.$orderXl !== undefined && css`\n ${media.xl} {\n order: ${props.$orderXl};\n }\n `}\n`\n\nexport const GridCol: React.FC<GridColProps> = ({ \n span, \n spanSm, \n spanMd, \n spanLg, \n spanXl,\n order,\n orderSm,\n orderMd,\n orderLg,\n orderXl,\n className, \n 'data-testid': dataTestId,\n children \n}) => (\n <GridColContainer\n $span={span}\n $spanSm={spanSm}\n $spanMd={spanMd}\n $spanLg={spanLg}\n $spanXl={spanXl}\n $order={order}\n $orderSm={orderSm}\n $orderMd={orderMd}\n $orderLg={orderLg}\n $orderXl={orderXl}\n className={className}\n data-testid={dataTestId}\n >\n {children}\n </GridColContainer>\n)\n\n// Responsive Grid (replaces the common grid-cols-1 md:grid-cols-2 xl:grid-cols-3 pattern)\ninterface ResponsiveGridProps {\n cols: number\n colsSm?: number\n colsMd?: number\n colsLg?: number\n colsXl?: number\n gap?: GridGap\n gapSm?: GridGap\n gapMd?: GridGap\n gapLg?: GridGap\n gapXl?: GridGap\n gapX?: GridGap\n gapXSm?: GridGap\n gapXMd?: GridGap\n gapXLg?: GridGap\n gapXXl?: GridGap\n gapY?: GridGap\n gapYSm?: GridGap\n gapYMd?: GridGap\n gapYLg?: GridGap\n gapYXl?: GridGap\n className?: string\n /** Test identifier for automated testing */\n 'data-testid'?: string\n children: React.ReactNode\n}\n\nconst ResponsiveGridContainer = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{\n $cols: number\n $colsSm?: number\n $colsMd?: number\n $colsLg?: number\n $colsXl?: number\n $gap?: string\n $gapSm?: string\n $gapMd?: string\n $gapLg?: string\n $gapXl?: string\n $gapX?: string\n $gapXSm?: string\n $gapXMd?: string\n $gapXLg?: string\n $gapXXl?: string\n $gapY?: string\n $gapYSm?: string\n $gapYMd?: string\n $gapYLg?: string\n $gapYXl?: string\n}>`\n display: grid;\n grid-template-columns: repeat(${props => props.$cols}, minmax(0, 1fr));\n \n ${props => props.$gap && css`gap: ${props.$gap};`}\n ${props => props.$gapX && css`column-gap: ${props.$gapX};`}\n ${props => props.$gapY && css`row-gap: ${props.$gapY};`}\n \n ${props => props.$colsSm && css`\n ${media.sm} {\n grid-template-columns: repeat(${props.$colsSm}, minmax(0, 1fr));\n }\n `}\n \n ${props => props.$colsMd && css`\n ${media.md} {\n grid-template-columns: repeat(${props.$colsMd}, minmax(0, 1fr));\n }\n `}\n \n ${props => props.$colsLg && css`\n ${media.lg} {\n grid-template-columns: repeat(${props.$colsLg}, minmax(0, 1fr));\n }\n `}\n \n ${props => props.$colsXl && css`\n ${media.xl} {\n grid-template-columns: repeat(${props.$colsXl}, minmax(0, 1fr));\n }\n `}\n \n // Responsive gap support\n ${props => props.$gapSm && css`\n ${media.sm} {\n gap: ${props.$gapSm};\n }\n `}\n \n ${props => props.$gapMd && css`\n ${media.md} {\n gap: ${props.$gapMd};\n }\n `}\n \n ${props => props.$gapLg && css`\n ${media.lg} {\n gap: ${props.$gapLg};\n }\n `}\n \n ${props => props.$gapXl && css`\n ${media.xl} {\n gap: ${props.$gapXl};\n }\n `}\n \n // Responsive column gap support\n ${props => props.$gapXSm && css`\n ${media.sm} {\n column-gap: ${props.$gapXSm};\n }\n `}\n \n ${props => props.$gapXMd && css`\n ${media.md} {\n column-gap: ${props.$gapXMd};\n }\n `}\n \n ${props => props.$gapXLg && css`\n ${media.lg} {\n column-gap: ${props.$gapXLg};\n }\n `}\n \n ${props => props.$gapXXl && css`\n ${media.xl} {\n column-gap: ${props.$gapXXl};\n }\n `}\n \n // Responsive row gap support\n ${props => props.$gapYSm && css`\n ${media.sm} {\n row-gap: ${props.$gapYSm};\n }\n `}\n \n ${props => props.$gapYMd && css`\n ${media.md} {\n row-gap: ${props.$gapYMd};\n }\n `}\n \n ${props => props.$gapYLg && css`\n ${media.lg} {\n row-gap: ${props.$gapYLg};\n }\n `}\n \n ${props => props.$gapYXl && css`\n ${media.xl} {\n row-gap: ${props.$gapYXl};\n }\n `}\n`\n\nexport const ResponsiveGrid: React.FC<ResponsiveGridProps> = ({ \n cols,\n colsSm,\n colsMd, \n colsLg, \n colsXl,\n gap, \n gapSm,\n gapMd,\n gapLg,\n gapXl,\n gapX, \n gapXSm,\n gapXMd,\n gapXLg,\n gapXXl,\n gapY, \n gapYSm,\n gapYMd,\n gapYLg,\n gapYXl,\n className, \n 'data-testid': dataTestId,\n children \n}) => (\n <ResponsiveGridContainer\n $cols={cols}\n $colsSm={colsSm}\n $colsMd={colsMd}\n $colsLg={colsLg}\n $colsXl={colsXl}\n $gap={gap ? gapSpacing[gap] : undefined}\n $gapSm={gapSm ? gapSpacing[gapSm] : undefined}\n $gapMd={gapMd ? gapSpacing[gapMd] : undefined}\n $gapLg={gapLg ? gapSpacing[gapLg] : undefined}\n $gapXl={gapXl ? gapSpacing[gapXl] : undefined}\n $gapX={gapX ? gapSpacing[gapX] : undefined}\n $gapXSm={gapXSm ? gapSpacing[gapXSm] : undefined}\n $gapXMd={gapXMd ? gapSpacing[gapXMd] : undefined}\n $gapXLg={gapXLg ? gapSpacing[gapXLg] : undefined}\n $gapXXl={gapXXl ? gapSpacing[gapXXl] : undefined}\n $gapY={gapY ? gapSpacing[gapY] : undefined}\n $gapYSm={gapYSm ? gapSpacing[gapYSm] : undefined}\n $gapYMd={gapYMd ? gapSpacing[gapYMd] : undefined}\n $gapYLg={gapYLg ? gapSpacing[gapYLg] : undefined}\n $gapYXl={gapYXl ? gapSpacing[gapYXl] : undefined}\n className={className}\n data-testid={dataTestId}\n >\n {children}\n </ResponsiveGridContainer>\n)\n"],"names":["cssVariableName","path","concat","__spreadArray","join","replace","toLowerCase","keepsValue","withCssVariables","tree","Object","fromEntries","entries","map","_a","key","value","at","tokens","tokensJson","semantic","initials","component","avatar","color","size","radius","AvatarContainer","styled","div","withConfig","shouldForwardProp","prop","startsWith","displayName","componentId","templateObject_1","__makeTemplateObject","$size","full","fill","muted","AvatarImage","img","templateObject_2","AvatarInitials","span","templateObject_3","fontFamily","fontWeight","fontSize","text","lineHeight","getInitials","name","split","word","charAt","slice","toUpperCase","Avatar","picture","_b","dataTestId","props","__rest","_c","htmlProps","_d","useState","imageError","setImageError","_e","imageLoaded","setImageLoaded","handleImageError","handleImageLoad","showImage","_jsx","__assign","role","children","src","alt","onError","onLoad","breakpoints","xs","breakpoint","sm","md","lg","xl","media","forcedColors","forcedColorsEdge","border","width","thin","reducedMotion","fadeOut","keyframes","exitAnimation","css","motion","duration","fast","easing","accelerate","visuallyHidden","rowFill","rowText","fieldButtonRadius","rowRadius","rowStates","unselected","rest","background","hover","pressed","selected","accent","rowDeclarations","textSelector","interactiveRow","focused","disabled","states","rowForcedColors","badge","dot","count","ring","scaleIn","BadgeWrapper","BadgeIndicator","$isVisible","$isDot","minWidth","height","space","inset","surface","base","moderate","decelerate","$variant","emphasis","inverse","Count","typography","caption","ScreenReaderOnly","templateObject_5","Badge","max","variant","ariaLabel","className","isVisible","displayCount","toString","defaultAriaLabel","label","_jsxs","spaceByLayoutKey","none","auto","spacing","layout","radiusByKey","circle","backgroundByPath","raised","overlay","scrim","danger","success","warning","serious","textColorByKey","borderColorByKey","StyledBox","templateObject_51","$display","$flexDirection","$justifyContent","$alignItems","templateObject_4","$flexWrap","$gap","templateObject_6","$m","templateObject_7","$mt","templateObject_8","$mr","$mb","templateObject_10","$ml","templateObject_11","$mx","templateObject_12","$my","$p","templateObject_14","$pt","templateObject_15","$pr","$pb","templateObject_17","$pl","templateObject_18","$px","templateObject_19","$py","templateObject_20","$width","templateObject_21","$height","templateObject_22","$maxWidth","templateObject_23","$maxHeight","$minWidth","templateObject_25","$minHeight","templateObject_26","$position","$top","templateObject_28","$right","templateObject_29","$bottom","$left","templateObject_31","$borderRadius","templateObject_32","$border","templateObject_33","$borderTop","$borderRight","templateObject_35","$borderBottom","templateObject_36","$borderLeft","templateObject_37","$bg","templateObject_38","$color","templateObject_39","$shadow","templateObject_40","elevation","$cursor","templateObject_41","$transition","$hoverShadow","$hoverTransform","templateObject_47","templateObject_43","templateObject_44","templateObject_45","focus","focusOffset","templateObject_46","$overflow","templateObject_48","$overflowX","templateObject_49","$overflowY","BoxTransform","display","flexDirection","justifyContent","alignItems","flexWrap","gap","m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","maxWidth","maxHeight","minHeight","position","top","right","bottom","left","borderRadius","borderTop","borderRight","borderBottom","borderLeft","bg","shadow","cursor","transition","hoverShadow","hoverTransform","overflow","overflowX","overflowY","as","onClick","onKeyDown","tabIndex","Box","IconStyled","icon","$iconColor","LINE","stroke","strokeWidth","strokeLinecap","strokeLinejoin","PAINT","both","Icon","iconColor","title","trim","undefined","iconSet","console","warn","viewBox","xmlns","paint","focusable","elements","index","tag","attributes","React","createElement","button","control","baseButtonStyles","feedback","outline","getVariantStyles","variantConfig","primary","backgroundColor","textColor","hoverBg","activeBg","active","disabledBg","disabledText","secondary","variants","naked","config","getSizeStyles","sizes","small","font","medium","large","StyledButton","StyledLink","a","getIconSize","buttonSize","renderButtonContent","iconName","iconSize","Button","url","purpose","target","LinkComponent","linkComponent","linkProps","href","buttonProps_1","handleClick","e","window","open","location","buttonProps","category","labelHeight","displayColors","categoryText","olive","periwinkle","rose","magenta","gray","StyledCategoryLabel","VisibleContent","HiddenLabel","CategoryLabel","accessibleLabel","includes","chip","$surface","$selected","$clickable","$disabled","subtle","interactiveStates","sizeStyles","StyledChip","IconContainer","CloseButton","closeButton","Chip","ariaDescribedBy","domProps","content","InputChip","onDismiss","isDismissible","Boolean","handleDismiss","event","stopPropagation","handleKeyDown","preventDefault","handleCloseKeyDown","closeButtonLabel","type","FilterChip","StyledSuggestionChip","input","SuggestionChip","StyledContainer","Container","PictureWrapper","clickableImage","press","opacity","ImageLink","ImageButton","StyledImage","Picture","image","TimeStyled","time","formatDateSmart","date","customFormat","isToday","isYesterday","isThisWeek","weekStartsOn","format","DateFormatter","dateString","formatString","mode","parseISO","displayText","dateTime","iconButton","padding","colours","IconButtonStyled","IconButton","ariaExpanded","ariaPressed","assign","letterSpacing","getTypographyStyles","styles","tighter","h1","h2","tight","h3","h4","h5","normal","h6","subtitle","body","overline","button1","button2","button3","getTextColor","colorVariant","colorMap","subdued","interactive","error","getDefaultElement","elementMap","StyledTypography","Typography","defaultElement","elementType","StyledWrapper","$align","$weight","sizeToTypographyVariant","xlarge","MINUS","MoneyDisplay","amount","currency","showSign","_f","weight","_g","locale","_h","align","formatter","Intl","NumberFormat","style","minimumFractionDigits","maximumFractionDigits","formattedAmount","Math","abs","isNegative","isPositive","sign","typographyVariant","amountColor","ProgressBarContainer","track","progressBar","ProgressBarFill","standard","min","$value","ProgressBar","ariaLabelledBy","labelledBy","separatorTokens","StyledDivider","$orientation","borderProperty","strong","minimal","Divider","orientation","StyledStack","GAP_SPACE","getGapValue","step","Stack","direction","wrap","gapValue","cssProps","statusShapes","info","inProgress","Mark","svg","StatusShape","shape","d","statusColors","getStatusConfig","status","configs","pending","bgColor","completed","failed","cancelled","processing","scheduled","sizeConfig","StyledStatusLabel","$status","StatusLabelBase","liveRegion","statusConfig","displayLabel","StatusLabel","StyledTag","Tag","tagSize","EXIT_DURATION_MS","parseInt","tokenValues","usePresence","isOpen","exitMs","isMounted","setIsMounted","useEffect","timer","setTimeout","clearTimeout","isPresent","isExiting","useInert","ref","isInert","node","current","setAttribute","removeAttribute","opposite","room","side","anchor","viewport","margin","clamp","placeFloating","options","floating","offset","vertical","s","needed","round","laidOutElement","wrapper","element","firstElementChild","getComputedStyle","useIsomorphicLayoutEffect","useLayoutEffect","supportsPopover","HTMLElement","prototype","ANCHOR_WIDTH_VAR","remToPx","parseFloat","document","documentElement","useFloatingLayer","floatingRef","anchorRef","matchAnchorWidth","onDetach","matches","showPopover","place","trigger","getBoundingClientRect","setProperty","removeProperty","innerWidth","innerHeight","dataset","ResizeObserver","observer","observe","disconnect","onScroll","Node","contains","addEventListener","removeEventListener","isKeyboardFocus","Element","HINT_DELAY_MS","delay","hint","SKIP_DELAY_MS","slow","CLOSE_GRACE_MS","lastClosedAt","fadeIn","Bubble","$exiting","Description","Anchor","Tooltip","kind","descriptionId","useId","useRef","bubbleRef","openTimer","closeTimer","owner","setIsOpen","wasDisabled","setWasDisabled","clearTimers","close","useCallback","Date","now","scheduleOpen","scheduleClose","child","Children","only","describedBy","filter","onPointerEnter","pointerType","onPointerLeave","onFocus","onBlur","onPointerDown","cloneElement","id","labels","suggested","removal","StyledAILabel","ai","StyledIcon","AILabel","labelSize","StyledBalanceSection","StyledTrendSection","StyledStackWrapper","StyledHeaderWrapper","accountCard","header","trendToIcon","up","down","neutral","trendToColor","AccountCard","accountName","balance","accountNumber","trend","trendValue","action","secondaryAction","isClickable","trendIcon","trendColor","ListSpacingContext","createContext","StyledListItem","li","row","$interactive","$destructive","StyledItemContent","$spacing","StyledTextContent","StyledIconContainer","StyledRightContent","StyledChevronIcon","$expanded","StyledExpandedContent","listItem","expandedIndent","compact","comfortable","ListItem","expandable","expanded","onToggle","destructive","spacingProp","customRole","ariaSelected","customTabIndex","customOnKeyDown","listSpacing","useContext","isInteractive","contentRole","ariaDisabled","ariaCurrent","Provider","slideUp","StyledOverlay","layer","modal","$isExiting","StyledActionSheet","StyledHeader","StyledHeaderContent","StyledCloseButton","StyledActionsList","ul","ActionSheet","onClose","description","actions","closeOnOverlayClick","closeOnEscape","showCloseButton","sheetRef","previousActiveElement","activeElement","focusableElements","querySelectorAll","firstElement","lastElement","length","shiftKey","frame","requestAnimationFrame","firstFocusable","querySelector","originalOverflow","cancelAnimationFrame","handleOverlayClick","currentTarget","handleActionClick","onSelect","destructiveIndex","findIndex","hasDestructive","createPortal","_Fragment","Fragment","detectSpeechRecognitionConstructor","targetWindow","candidateWindow","SpeechRecognition","webkitSpeechRecognition","normalizeTranscript","normalizeMessage","mapSpeechErrorCode","defaultVoiceErrorMessage","code","textDrivenState","hasText","agentInputStateTransition","currentState","DEFAULT_LISTENING_MESSAGE","DEFAULT_PROCESSING_MESSAGE","COUNTER_THRESHOLD","rotateRing","$docked","sticky","ControlsRow","InputShell","borderWidth","borderColor","Input","textarea","placeholder","InputActions","CircularActionIconButton","InputWrapper","templateObject_9","MicButtonWrapper","ringMask","MicListeningRing","templateObject_13","thick","$reducedMotion","MAX_SUGGESTIONS","regionEnter","distance","regionFadeIn","regionFadeThenCollapse","templateObject_16","regionFadeOut","RegionItem","$reducedExit","RegionItemContent","ReviewBar","ReviewActions","SuggestionList","StatusRow","StatusText","templateObject_27","StatusAnnouncement","StatusEnd","VisuallyHidden","templateObject_30","MeterContainer","MeterBar","VisuallyHiddenLabel","getInitialState","createMeterBars","level","clampedLevel","readIsProduction","process","env","NODE_ENV","isProduction","RegionPart","show","reducedExit","AgentInputWithRef","_this","defaultValue","onChange","onSubmit","onStop","review","suggestions","onSuggestionSelect","maxLength","isSubmitting","enableVoice","autoSubmitOnVoiceFinal","voiceLanguage","_j","noSpeechTimeoutMs","onVoiceStart","onVoiceStop","onVoiceInterim","onVoiceFinal","onVoiceError","_k","helperText","statusMessage","errorMessage","_l","_m","docked","isControlled","_o","internalValue","setInternalValue","_p","machineState","setMachineState","_q","interimTranscript","setInterimTranscript","_r","internalSubmitting","setInternalSubmitting","_s","internalErrorMessage","setInternalErrorMessage","_t","voiceSupported","setVoiceSupported","_u","prefersReducedMotion","setPrefersReducedMotion","_v","meterLevel","setMeterLevel","recognitionRef","noSpeechTimeoutRef","isStoppingRef","hasSubmittedVoiceFinalRef","audioStreamRef","audioContextRef","meterRafRef","inputRef","inputId","statusId","counterId","currentValue","currentValueRef","messageLength","isOverLimit","effectiveSubmitting","effectiveState","isListening","hasVoice","updateMachineState","previousState","updateValue","nextValue","clearNoSpeechTimeout","stopMeter","__awaiter","getTracks","forEach","stop","sent","startMeter","navigator","mediaDevices","getUserMedia","audio","stream","audioContext","AudioContext","analyser_1","createAnalyser","fftSize","source","createMediaStreamSource","connect","data_1","Uint8Array","frequencyBinCount","loop_1","getByteTimeDomainData","sum","centered","rms","sqrt","nextLevel","emitVoiceError","fallback","message","submitPayload","rawText","timestamp","toISOString","stopListening","emitStopEvent_1","args_1","emitStopEvent","preserveState","onNoSpeechTimeout","beginListening","start","constructor","recognition","lang","interimResults","continuous","onresult","interim","finalText","resultIndex","results","result","isFinal","transcript","normalizedInterim","normalizedFinal","onerror","mappedCode","onend","abort","focusField","placeCursor","select","setSelectionRange","useImperativeHandle","clear","_w","shownReview","setShownReview","_x","lastReviewAction","setLastReviewAction","openProposalId","state","_y","announcedProposalId","setAnnouncedProposalId","_z","replacementCount","setReplacementCount","cappedSuggestions","useMemo","showSuggestions","_0","shownSuggestions","setShownSuggestions","suggestionCount","reviewAnnouncement","summary","onReviewDiscard","onDiscard","onReviewUndo","onUndo","onPickSuggestion","mediaQuery","matchMedia","sync","displayedValue","lastFieldWidthRef","resizeField","field","clientWidth","scrollX","scrollY","scrollHeight","scrollTo","clientHeight","onTextChange","onInputKeyDown","isComposing","nativeEvent","keyCode","onMicToggle","statusByState","idle","typing","listening","processingFinalTranscript","submitting","overLimitMessage","resolvedStatus","isStatusError","meterBars","showStop","sendDisabled","showCounter","limitAnnouncement","htmlFor","onAccept","suggestion","rows","enterKeyHint","readOnly","barHeight","AgentInput","forwardRef","alert","FADE_MS","EXIT_MS","fadeThenCollapse","EXIT_ANIMATION_NAMES","getName","variantIcons","variantIconColors","variantTitleColors","StyledAlert","severity","$appearance","appearance","StyledContent","StyledTitle","StyledMessage","StyledActions","StyledDismissSlot","$lineHeight","StyledDismissButton","Alert","dismissible","ariaLive","restProps","inline","phase","setPhase","setReducedExit","exitStyle","setExitStyle","alertRef","onDismissRef","paddingTop","paddingBottom","boxSizing","offsetHeight","borderTopWidth","borderBottomWidth","call","forwarded","handleAnimationEnd","onAnimationEnd","pseudoElement","animationName","alertIconColor","alertTitleColor","variantTextColors","variantShapes","StyledInlineAlert","$empty","StyledIconLine","InlineAlert","alertSize","hasMessage","BreadcrumbNavStyled","nav","BreadcrumbStyled","breadcrumbs","item","BreadcrumbSeparator","isInternalUrl","Breadcrumbs","breadcrumb","rel","CardSmallStyled","CardSmall","meta","CardLargeStyled","cardLarge","CardLarge","excerpt","onImageClick","imageHref","Array","isArray","HiddenCheckboxInput","StyledCheckbox","checkbox","box","$checked","$indeterminate","$state","on","mark","StyledCheckboxContainer","$labelPosition","StyledCheckboxLabel","StyledFieldContainer","StyledHelperText","$error","colorError","Checkbox","checked","indeterminate","labelPosition","providedId","ariaDescribedby","generatedId","helperTextId","errorId","ChipGroupWrapper","ChipGroup","StyledCodeBlock","pre","codeBlock","$isExpanded","$needsExpansion","CodeBlockWrapper","CopyButtonWrapper","ExpandButtonWrapper","$hasGradient","CopyButton","onCopy","copied","setCopied","timeoutRef","handleCopy","clipboard","writeText","err_1","LiveRegion","CodeBlock","showCopyButton","defaultExpanded","testId","isExpanded","setIsExpanded","needsExpansion","setNeedsExpansion","announcement","setAnnouncement","contentRef","handleToggleExpand","prev","showExpandButton","$sticky","StyledLeftSection","StyledRightSection","DateGroup","showTotal","totalAmount","showCount","totalVariant","emptyState","StyledIllustration","illustration","StyledTextContainer","illustrationToIcon","search","transactions","notifications","empty","EmptyState","customIllustration","renderIllustration","marginTop","FeatureBlockStyled","ImageWrapper","ContentSection","ButtonWrapper","ContentWrapper","FeatureBlock","coverImage","onReadMore","readMoreHref","readMoreText","controlPaddingX","controlPaddingY","controlHeight","DropdownContainer","DropdownTrigger","$hasError","$isOpen","DropdownIcon","DropdownMenu","dropdown","menu","DropdownOption","$isSelected","$isFocused","Dropdown","focusedIndex","setFocusedIndex","dropdownRef","dropdownId","selectedOption","find","option","hasError","helperId","handleClickOutside","newIndex","handleOptionClick","handleTriggerClick","selectedIndex","optionId","marginBottom","StyledList","$dividers","List","dividers","TYPEAHEAD_RESET_MS","ITEM_SELECTOR","MenuContext","useMenu","context","Error","enter","fade","Panel","focusItem","which","items","from","Menu","openProp","defaultOpen","onOpenChange","matchTriggerWidth","menuId","triggerId","panelRef","initialFocus","openedFromTrigger","typeahead","uncontrolledOpen","setUncontrolledOpen","triggerElement","setOpen","next","returnFocus","openWith","String","panel","detach","onTriggerKeyDown","onTriggerClick","detail","onMenuKeyDown","indexOf","move","ctrlKey","metaKey","altKey","state_1","label_1","textContent","ordered","Row","$focused","Leading","Text","Shortcut","Check","RowItem","shortcut","textValue","onActivate","setFocused","checkable","activate","keys","onPointerMove","MenuItem","MenuItemRadio","MenuItemCheckbox","onCheckedChange","GroupLabel","MenuGroup","labelId","Separator","MenuDivider","SidebarNavContext","collapsed","glide","useSidebarNav","EXPANDED_WIDTH_VAR","SCROLLBAR_VAR","NAV_PADDING","ROW_INSET","sidebarNav","rail","hidden","Fold","$open","test","$current","$glide","Inner","$withIcon","Label","$hidden","Meta","EndSlot","EndAnchor","IconBox","Corner","Item","attrs","SidebarNavItem","badgeLabel","hasBadge","badgeText","shared","COLLAPSE_MS","Section","$collapsed","Header","labelText","StaticLabel","Disclosure","Collapse","$clip","SidebarNavSection","collapsible","expandedProp","onExpandedChange","inNav","listId","uncontrolledExpanded","setUncontrolledExpanded","animating","setAnimating","userExpanded","toggle","showsInRail","toArray","some","isValidElement","onTransitionEnd","propertyName","sizeToWidth","StyledDialog","StyledBody","StyledFooter","Modal","dialogRef","previousFocusRef","timer_1","first","last","titleId","inputBaseStyles","StyledInputBase","StyledTextAreaBase","StyledLabel","colorDisabled","StyledRequiredIndicator","requiredIndicator","StyledInputWrapper","StyledNumberInput","StyledStepperContainer","$isError","NumberInput","required","parseValue","val","parsed","isNaN","formatValue","handleIncrement","inputElement","numValue","newValue","syntheticEvent","handleDecrement","handleChange","inputValue","parsedValue","isIncrementDisabled","isDecrementDisabled","ariaDescribedByIds","inputMode","StyledToggleButton","PasswordField","showToggle","inputProps","showPassword","setShowPassword","togglePasswordVisibility","paddingRight","StyledSearchContainer","StyledInput","StyledSuggestionsList","StyledSectionHeader","searchField","sectionHeader","debounce","func","wait","timeout","args","_i","arguments","apply","SearchField","showRecentSearches","recentSearches","onClearRecentSearches","debounceMs","loading","isFocused","setIsFocused","setShowSuggestions","highlightedIndex","setHighlightedIndex","debouncedValue","setDebouncedValue","listRef","debouncedOnChange","displayItems","push","data","r","handleInputChange","handleFocus","handleBlur","handleSuggestionClick","handleClear","scrollIntoView","block","showClearButton","hasItems","isString","slideInRight","slideInLeft","slideInTop","slideInBottom","StyledSheet","isDrawer","StyledSheetContent","Sheet","StyledSliderContainer","StyledSliderTrackContainer","StyledTrack","StyledTrackFill","StyledThumb","slider","thumb","pointerTarget","touchTarget","$range","$active","StyledValueLabel","StyledMinMaxLabels","Slider","controlledValue","controlledRangeValue","rangeValue","defaultRangeValue","onRangeChange","showValueLabel","trackRef","activeThumb","setActiveThumb","endDragRef","isRange","internalRangeValue","setInternalRangeValue","currentRangeValue","clampValue","clamped","stepped","positionToValue","clientX","rect","percent","rawValue","valueToPercent","handleSingleChange","clampedValue","handleRangeChange","newMin","newMax","clampedMin","clampedMax","orderedMin","orderedMax","handleTrackClick","closest","minVal","maxVal","distToMin","distToMax","handleThumbPointerDown","pointerId","setPointerCapture","handlePointerMove","endDrag","handlePointerEnd","valueChange","singlePercent","minPercent","maxPercent","StyledTabList","tabBar","scrollbar","StyledTab","$isActive","StyledBadge","TabBar","tabs","activeTab","onTabChange","tabRefs","tab","handleTabClick","el","TextField","StyledAvatarSection","StyledMainContent","StyledTopRow","StyledMerchantSection","StyledBottomRow","StyledMetadata","StyledIconIndicator","StyledTruncatedText","categoryConfig","shopping","dining","transport","entertainment","bills","other","TransactionListItem","merchant","merchantLogo","hasReceipt","hasNote","amountVariant","categoryData","Trigger","Name","Decoration","WorkspaceSwitcher","workspaces","match","workspace","widths","Nav","HeaderContent","CollapseSlot","ExpandSlot","Body","Content","Highlight","$visible","$instant","Footer","SidebarNav","footer","collapsedProp","defaultCollapsed","onCollapsedChange","uncontrolledCollapsed","setUncontrolledCollapsed","navRef","bodyRef","measure","offsetWidth","visible","instant","highlight","setHighlight","collapseSlot","expandSlot","focusToggle","to","request","slot","hide","setLayout","highlightRow","getAttribute","outer","headerContext","onPointerOver","relatedTarget","transform","gapSpacing","dimension","GridContainer","$cols","$gapX","$gapY","Grid","cols","gapX","gapY","GridColContainer","$span","$order","$spanSm","$spanMd","$spanLg","$spanXl","$orderSm","$orderMd","$orderLg","$orderXl","GridCol","spanSm","spanMd","spanLg","spanXl","order","orderSm","orderMd","orderLg","orderXl","ResponsiveGridContainer","$colsSm","$colsMd","$colsLg","$colsXl","$gapSm","$gapMd","templateObject_24","$gapLg","$gapXl","$gapXSm","$gapXMd","$gapXLg","$gapXXl","$gapYSm","$gapYMd","$gapYLg","$gapYXl","templateObject_34","ResponsiveGrid","colsSm","colsMd","colsLg","colsXl","gapSm","gapMd","gapLg","gapXl","gapXSm","gapXMd","gapXLg","gapXXl","gapYSm","gapYMd","gapYLg","gapYXl"],"mappings":"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","x_google_ignoreList":[0]}
|