@common-origin/design-system 2.22.0 → 2.23.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.
@@ -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/CategoryBadge/CategoryBadge.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/BooleanChip.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/StatusBadge/StatusBadge.tsx","../src/components/atoms/StatusLabel/StatusLabel.tsx","../src/components/atoms/Tag/Tag.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/lib/usePresence.ts","../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/Modal/Modal.tsx","../src/components/molecules/TextField/InputBase.tsx","../src/components/molecules/NumberInput/NumberInput.tsx","../src/components/molecules/PageTitle/PageTitle.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/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` and `accent`, plus deprecated aliases of `accent` kept until 3.0.\n */\nexport type BadgeVariant = 'default' | 'accent' | DeprecatedBadgeVariant\n\n/**\n * Deprecated Badge variants, each rendered as `accent` until 3.0 (decisions 0029, 0045).\n * @deprecated Use `accent`. For a count of items with a status, use StatusLabel.\n */\nexport type DeprecatedBadgeVariant = 'primary' | 'error' | 'warning' | 'success'\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. `primary` is a deprecated alias for\n * `accent`, because Button's `primary` is near-black (decision 0029). `error`, `warning` and\n * `success` are deprecated aliases for `accent`: a badge's colour alone can't carry a status, so\n * a count of items with a status uses the status pattern instead (\"3 failed\" with StatusLabel).\n * All four keep working until they are removed in 3.0.\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 // 'primary', 'error', 'warning' and 'success' are deprecated aliases for 'accent', removed in\n // 3.0: 'primary' (#169), and the status colours, because a badge's colour alone can't carry a\n // status (decision 0045, #263)\n case 'accent':\n case 'primary':\n case 'error':\n case 'warning':\n case 'success':\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// Props whose values are token keys keep their published vocabulary in 2.x (P7), but read the\n// semantic grammar's names (decision 0031, #189). Each map covers every key the prop type allows,\n// so TypeScript fails here if a key is added without a mapping.\nconst { semantic } = tokens\nconst { color, space, radius, surface, opacity } = semantic\n\ntype Semantic = Tokens['semantic']\n\n/** Box's spacing props (`p`, `m`, `gap`…): the old layout scale's keys, read from `space`. */\nexport const spaceByLayoutKey: Record<keyof Semantic['spacing']['layout'], 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: it stays until the keyword question is settled (0031)\n auto: semantic.spacing.layout.auto,\n}\n\n/** Box's `borderRadius` prop: the old radius keys, read from `radius`. */\nexport const radiusByKey: Record<keyof Semantic['border']['radius'], 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/** Box's `bg` prop: the old background keys, read from `surface` and `color.fill`. */\nexport const backgroundByKey: Record<keyof Semantic['color']['background'], string> = {\n default: surface.base,\n page: surface.base,\n subtle: surface.raised,\n overlay: surface.scrim,\n emphasis: color.fill.emphasis,\n // A strong fill's states mix its content colour in at the state-layer opacity (decision 0048)\n 'emphasis-hover': `color-mix(in srgb, ${color.fill.emphasis}, ${color.text.inverse} calc(${opacity.state.hover} * 100%))`,\n 'emphasis-active': `color-mix(in srgb, ${color.fill.emphasis}, ${color.text.inverse} calc(${opacity.state.pressed} * 100%))`,\n surface: color.fill.muted,\n inverse: color.fill.inverse,\n interactive: color.fill.accent,\n 'interactive-hover': color.fill['accent-hover'],\n 'interactive-active': color.fill['accent-pressed'],\n 'interactive-subtle': color.fill['accent-muted'],\n 'interactive-subtle-hover': color.fill['accent-muted-hover'],\n 'interactive-subtle-active': color.fill['accent-muted-pressed'],\n error: color.fill.danger,\n 'error-hover': color.fill['danger-hover'],\n 'error-active': color.fill['danger-pressed'],\n 'error-subtle': color.fill['danger-muted'],\n success: color.fill.success,\n 'success-subtle': color.fill['success-muted'],\n warning: color.fill.warning,\n 'warning-subtle': color.fill['warning-muted'],\n disabled: color.fill.disabled,\n neutral: color.fill.default,\n 'neutral-hover': color.fill['default-hover'],\n 'neutral-active': color.fill['default-pressed'],\n transparent: color.fill.none,\n 'hover-overlay': color.fill['none-hover'],\n 'active-overlay': color.fill['none-pressed'],\n 'inverse-overlay': color.fill['inverse-none-hover'],\n // Moved to the component tier (decision 0031 §6)\n progressTrack: tokens.component.track.background,\n}\n\n/** Box's `color` prop: text colours, old and new keys. */\nexport const textColorByKey: Record<keyof Semantic['color']['text'], string> = {\n default: color.text.default,\n emphasis: color.text.default,\n inverse: color.text.inverse,\n disabled: color.text.disabled,\n success: color.text.success,\n warning: color.text.warning,\n muted: color.text.muted,\n accent: color.text.accent,\n 'accent-hover': color.text.accent,\n 'accent-pressed': color.text.accent,\n danger: color.text.danger,\n serious: color.text.serious,\n ai: color.text.ai,\n subdued: color.text.muted,\n interactive: color.text.accent,\n 'interactive-hover': color.text.accent,\n 'interactive-active': color.text.accent,\n error: color.text.danger,\n}\n\n/** Box's border props: border colours, old and new keys. */\nexport const borderColorByKey: Record<keyof Semantic['color']['border'], string> = {\n default: color.border.default,\n success: color.border.success,\n warning: color.border.warning,\n none: color.border.none,\n emphasis: color.border.default,\n input: color.border.input,\n 'input-hover': color.border['input-hover'],\n focus: color.border.focus,\n accent: color.border.accent,\n danger: color.border.danger,\n serious: color.border.serious,\n ai: color.border.ai,\n subtle: color.border.default,\n control: color.border.input,\n // `strong` split by use (0031); as a generic firm outline it is the hovered-input border\n strong: color.border['input-hover'],\n interactive: color.border.accent,\n error: color.border.danger,\n}\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\nimport type { Tokens } from '../../../types/tokens'\nimport { backgroundByKey, borderColorByKey, radiusByKey, spaceByLayoutKey, textColorByKey } from '../../../lib/tokenAliases'\nimport { reducedMotion } from '../../../lib/styleUtils'\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?: keyof Tokens['semantic']['spacing']['layout']\n \n // Spacing (using semantic layout tokens)\n m?: keyof Tokens['semantic']['spacing']['layout']\n mt?: keyof Tokens['semantic']['spacing']['layout']\n mr?: keyof Tokens['semantic']['spacing']['layout']\n mb?: keyof Tokens['semantic']['spacing']['layout']\n ml?: keyof Tokens['semantic']['spacing']['layout']\n mx?: keyof Tokens['semantic']['spacing']['layout']\n my?: keyof Tokens['semantic']['spacing']['layout']\n p?: keyof Tokens['semantic']['spacing']['layout']\n pt?: keyof Tokens['semantic']['spacing']['layout']\n pr?: keyof Tokens['semantic']['spacing']['layout']\n pb?: keyof Tokens['semantic']['spacing']['layout']\n pl?: keyof Tokens['semantic']['spacing']['layout']\n px?: keyof Tokens['semantic']['spacing']['layout']\n py?: keyof Tokens['semantic']['spacing']['layout']\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?: keyof Tokens['semantic']['border']['radius']\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 bg?: keyof Tokens['semantic']['color']['background']\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 && css`border: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$border]};`}\n ${props => props.$borderTop && css`border-top: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderTop]};`}\n ${props => props.$borderRight && css`border-right: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderRight]};`}\n ${props => props.$borderBottom && css`border-bottom: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderBottom]};`}\n ${props => props.$borderLeft && css`border-left: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderLeft]};`}\n \n // Background & Color\n ${props => props.$bg && css`background-color: ${backgroundByKey[props.$bg]};`}\n ${props => 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 /** @deprecated Use `accent`. `emphasis` will be removed in 3.0. */\n | 'emphasis'\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 * `emphasis` is a deprecated alias for `accent` and will be removed in 3.0.\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 // Deprecated alias for accent; removed in 3.0\n emphasis: {\n bg: button.variants.emphasis.backgroundColor,\n text: button.variants.emphasis.textColor,\n hoverBg: button.variants.emphasis.hover.backgroundColor,\n activeBg: button.variants.emphasis.active.backgroundColor,\n disabledBg: button.variants.emphasis.disabled.backgroundColor,\n disabledText: button.variants.emphasis.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 const config = variantConfig[$variant]\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 * Deprecated category colour names, each an alias of the nearest display colour until 3.0\n * (decision 0043): blue is periwinkle; purple is magenta; pink, red and orange are rose; yellow and\n * green are olive.\n * @deprecated Use a CategoryDisplayColor: 'olive', 'periwinkle', 'rose', 'magenta' or 'gray'.\n */\nexport type DeprecatedCategoryColor = 'blue' | 'purple' | 'pink' | 'yellow' | 'green' | 'red' | 'orange'\n\n/**\n * Category color options for CategoryLabel. The old hue names still work, as aliases of the\n * nearest display colour, until 3.0.\n */\nexport type CategoryColor = CategoryDisplayColor | DeprecatedCategoryColor\n\nconst displayColor: Record<CategoryColor, CategoryDisplayColor> = {\n olive: 'olive',\n periwinkle: 'periwinkle',\n rose: 'rose',\n magenta: 'magenta',\n gray: 'gray',\n blue: 'periwinkle',\n purple: 'magenta',\n pink: 'rose',\n yellow: 'olive',\n green: 'olive',\n red: 'rose',\n orange: 'rose',\n}\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'. The old hue names are\n * deprecated aliases (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 $color={displayColor[color]}\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 React from 'react'\nimport { CategoryLabel, type CategoryLabelProps } from '../CategoryLabel/CategoryLabel'\n\nexport type { CategoryColor, CategoryVariant } from '../CategoryLabel/CategoryLabel'\n\n/**\n * Size options for CategoryBadge\n * @deprecated Use `CategoryLabelSize`: CategoryBadge `small` is CategoryLabel `medium`, and\n * `medium` is `large` (decision 0018).\n */\nexport type CategorySize = 'small' | 'medium'\n\n/**\n * Props for the CategoryBadge component\n * @deprecated Use `CategoryLabelProps`. CategoryBadge is renamed CategoryLabel and is removed in\n * 3.0 (decision 0018).\n */\nexport interface CategoryBadgeProps extends Omit<CategoryLabelProps, 'size'> {\n /**\n * Size of the badge\n * @default 'medium'\n */\n size?: CategorySize\n}\n\n// CategoryBadge sizes on the decision 0018 scale\nconst toLabelSize = { small: 'medium', medium: 'large' } as const\n\n/**\n * CategoryBadge displays a category label.\n *\n * @deprecated Renamed to `CategoryLabel` (same `color` and `variant`). Map `size=\"small\"` to\n * `\"medium\"`, and `size=\"medium\"` (or no size) to `\"large\"`, CategoryLabel's default.\n * CategoryBadge is removed in 3.0 (decision 0018).\n */\nexport const CategoryBadge: React.FC<CategoryBadgeProps> = ({ size = 'medium', ...props }) => (\n <CategoryLabel {...props} size={toLabelSize[size]} />\n)\n\nCategoryBadge.displayName = 'CategoryBadge'\n","import tokens from '../../../../lib/cssTokens'\nimport { forcedColors } from '../../../../lib/styleUtils'\nimport { ChipVariant } from './types'\n\nconst { component: { chip }, semantic } = tokens\n\ninterface StyledChipProps {\n $variant: ChipVariant\n $disabled?: boolean\n $clickable?: boolean\n $selected?: boolean\n}\n\n// Helper function to get variant styles matching Button's approach\nexport const getVariantStyles = ({ $variant, $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 ($variant) {\n case 'emphasis':\n return `\n background-color: ${chip.variants.emphasis.backgroundColor};\n color: ${chip.variants.emphasis.textColor};\n \n &:hover {\n background-color: ${$disabled ? chip.variants.emphasis.disabled.backgroundColor : ($clickable ? chip.variants.emphasis.hover.backgroundColor : chip.variants.emphasis.backgroundColor)};\n }\n \n &:active {\n background-color: ${$disabled ? chip.variants.emphasis.disabled.backgroundColor : ($clickable ? chip.variants.emphasis.active.backgroundColor : chip.variants.emphasis.backgroundColor)};\n }\n \n ${$disabled ? `\n background-color: ${chip.variants.emphasis.disabled.backgroundColor};\n color: ${chip.variants.emphasis.disabled.textColor};\n ` : ''}\n `\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 'interactive':\n return `\n background-color: ${chip.variants.interactive.backgroundColor};\n color: ${chip.variants.interactive.textColor};\n \n &:hover {\n background-color: ${$disabled ? chip.variants.interactive.disabled.backgroundColor : ($clickable ? chip.variants.interactive.hover.backgroundColor : chip.variants.interactive.backgroundColor)};\n }\n \n &:active {\n background-color: ${$disabled ? chip.variants.interactive.disabled.backgroundColor : ($clickable ? chip.variants.interactive.active.backgroundColor : chip.variants.interactive.backgroundColor)};\n }\n \n ${$disabled ? `\n background-color: ${chip.variants.interactive.disabled.backgroundColor};\n color: ${chip.variants.interactive.disabled.textColor};\n ` : ''}\n `\n case 'default':\n default:\n return `\n background-color: ${chip.default.backgroundColor};\n color: ${chip.default.textColor};\n \n &:hover {\n background-color: ${$disabled ? chip.disabled.backgroundColor : ($clickable ? chip.hover.backgroundColor : chip.default.backgroundColor)};\n }\n \n &:active {\n background-color: ${$disabled ? chip.disabled.backgroundColor : ($clickable ? chip.active.backgroundColor : chip.default.backgroundColor)};\n }\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, LegacyVariant } from './shared/types'\nimport { StyledChip } from './shared/ChipBase'\n\nexport interface ChipProps extends BaseChipProps {\n /**\n * Visual style. Only `default` stays in 3.0. `emphasis`, `subtle`, `interactive`, `light`\n * and `dark` are deprecated and will be removed (decision 0016).\n * @default 'default'\n */\n variant?: ChipVariant | LegacyVariant\n /**\n * Click handler.\n * @deprecated Removed in 3.0: the static Chip is not interactive. For a clickable action use a\n * Button; for a toggle use `BooleanChip` (`FilterChip` in 3.0).\n */\n onClick?: () => void\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 (`default` variant only)\n * - InputChip: a removable value, such as an applied filter (formerly `FilterChip`)\n * - BooleanChip: toggles a filter on and off (becomes `FilterChip` in 3.0)\n *\n * The `emphasis`, `subtle`, `interactive`, `light` and `dark` variants and `onClick` are\n * deprecated and will be removed in 3.0.\n */\nexport const Chip: React.FC<ChipProps> = ({\n children,\n variant = 'default',\n // Deprecated and ignored: chips have one size (decision 0035)\n size: _size,\n onClick,\n disabled = false,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n role,\n title,\n ...props\n}) => {\n const isClickable = Boolean(onClick && !disabled)\n \n // Map legacy variants to new variants\n const normalizedVariant: ChipVariant = \n variant === 'light' ? 'default' :\n variant === 'dark' ? 'emphasis' :\n variant as ChipVariant\n \n // Support legacy title prop\n const content = children !== undefined ? children : title\n \n const handleClick = () => {\n if (onClick && !disabled) {\n onClick()\n }\n }\n \n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isClickable && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault()\n handleClick()\n }\n }\n \n return (\n <StyledChip\n $variant={normalizedVariant}\n $disabled={disabled || undefined}\n $clickable={isClickable || undefined}\n onClick={isClickable ? handleClick : undefined}\n onKeyDown={handleKeyDown}\n tabIndex={isClickable ? 0 : undefined}\n role={role || (isClickable ? 'button' : undefined)}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled ? 'true' : undefined}\n data-testid={dataTestId}\n {...props}\n >\n {content}\n </StyledChip>\n )\n}\n\n// Legacy component for backward compatibility\nexport interface LegacyChipProps {\n title: string\n variant?: LegacyVariant\n}\n\nexport const LegacyChip: React.FC<LegacyChipProps> = ({ title, variant = 'light' }) => {\n const newVariant = variant === 'dark' ? 'emphasis' : 'default'\n return <Chip variant={newVariant}>{title}</Chip>\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 // Deprecated and ignored: chips have one size (decision 0035)\n size: _size,\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 $variant=\"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 { InputChip, type InputChipProps } from './InputChip'\n\n/**\n * @deprecated Renamed to `InputChipProps`. In 3.0 `FilterChipProps` becomes the props of the toggle chip.\n */\nexport type FilterChipProps = InputChipProps\n\n/**\n * FilterChip - a removable chip with an optional selected state.\n *\n * @deprecated Renamed to `InputChip`; in 3.0 `FilterChip` becomes the toggle chip (today's\n * `BooleanChip`). Replace `FilterChip` with `InputChip` first, then `BooleanChip` with\n * `FilterChip` when you upgrade to 3.0 (decision 0016).\n */\nexport const FilterChip = InputChip\n","import React from 'react'\nimport { Icon } from '../Icon'\nimport { BaseChipProps } from './shared/types'\nimport { StyledChip, IconContainer } from './shared/ChipBase'\n\n/** @deprecated Becomes `FilterChipProps` in 3.0 (decision 0016). */\nexport interface BooleanChipProps 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 * BooleanChip - Toggleable chip for quick filter controls\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 * @deprecated Becomes `FilterChip` in 3.0, with the same props. Keep using `BooleanChip`\n * until you upgrade; in 3.0, replace `FilterChip` with `InputChip` first, then\n * `BooleanChip` with `FilterChip` (decision 0016).\n */\nexport const BooleanChip: React.FC<BooleanChipProps> = ({\n children,\n selected,\n onClick,\n // Deprecated and ignored: chips have one size (decision 0035)\n size: _size,\n disabled = false,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}) => {\n const handleClick = () => {\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 $variant=\"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'` is deprecated: it has always behaved exactly like\n * `'smart'`, so use `'smart'`. It keeps working until it is removed in 3.0 (#82).\n */\nexport type DateFormatMode = 'absolute' | 'relative' | '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 * `'relative'` is deprecated: it behaves exactly like `'smart'`, so use `'smart'`. It keeps\n * working until it is removed in 3.0 (#82).\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 'relative': // Deprecated alias for 'smart', removed in 3.0 (#82)\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 shared by StatusLabel and the deprecated StatusBadge\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 * Shared implementation of StatusLabel and the deprecated StatusBadge. Internal: not exported\n * from the package. `showIcon` exists only for StatusBadge. StatusLabel always shows the status icon\n * at the medium size, and at the small size the shape for coloured statuses (decisions 0018, 0045).\n */\nexport const StatusLabelBase: React.FC<StatusLabelProps & { showIcon?: boolean }> = ({\n status,\n label,\n size = 'medium',\n showIcon = true,\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 {showIcon && size === 'medium' && (\n <Icon\n name={statusConfig.icon}\n size={sizeStyles.iconSize}\n iconColor=\"inherit\"\n />\n )}\n {showIcon && 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 '../StatusLabel/StatusLabelBase'\n\nexport type { StatusType, StatusSize } from '../StatusLabel/StatusLabelBase'\n\n/**\n * Props for the StatusBadge component\n * @deprecated Use `StatusLabelProps`. StatusBadge is renamed StatusLabel and is removed in 3.0\n * (decision 0018).\n */\nexport interface StatusBadgeProps extends StatusLabelProps {\n /**\n * Whether to show the icon\n * @default true\n * @deprecated StatusLabel always shows its status icon or shape with the text, so status is\n * never conveyed by colour alone (decision 0045).\n */\n showIcon?: boolean\n}\n\n/**\n * StatusBadge displays a transaction or task status.\n *\n * @deprecated Renamed to `StatusLabel` (same `status`, `size`, `label`, `liveRegion`), which always\n * shows its status icon or shape. StatusBadge is removed in 3.0 (decision 0018).\n */\nexport const StatusBadge: React.FC<StatusBadgeProps> = (props) => <StatusLabelBase {...props} />\n\nStatusBadge.displayName = 'StatusBadge'\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 */\n// showIcon comes last so no caller (for example plain JavaScript) can hide the icon\nexport const StatusLabel: React.FC<StatusLabelProps> = (props) => <StatusLabelBase {...props} showIcon />\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. `success`, `warning` and `error` are deprecated (status belongs to\n * `StatusLabel`), and so is `interactive` (a blue fill on a static label is decoration).\n * They keep working until they are removed in 3.0 (decision 0029).\n * @default 'default'\n */\n variant?: 'default' | 'interactive' | 'success' | 'warning' | 'error' | '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 'interactive':\n return color.fill['accent-muted']\n case 'success':\n return color.fill['success-muted']\n case 'warning':\n return color.fill['warning-muted']\n case 'error':\n return color.fill['danger-muted']\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 'interactive':\n return color.text.accent\n case 'success':\n return color.text.success\n case 'warning':\n return color.text.warning\n case 'error':\n return color.text.danger\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 'interactive':\n return `${semantic.border.width.thin} solid ${color.border.accent}`\n case 'success':\n return `${semantic.border.width.thin} solid ${color.border.success}`\n case 'warning':\n return `${semantic.border.width.thin} solid ${color.border.warning}`\n case 'error':\n return `${semantic.border.width.thin} solid ${color.border.danger}`\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 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=\"subtle\"\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 */\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.touchTarget};\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 padding: ${({ $spacing }) =>\n $spacing === 'compact'\n ? `${semantic.space[200]} ${semantic.space[300]}`\n : `${semantic.space[300]} ${semantic.space[400]}`};\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 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 margin: 0 ${\n $spacing === 'compact' \n ? semantic.space[300] \n : semantic.space[400]\n } ${\n $spacing === 'compact'\n ? semantic.space[200]\n : semantic.space[300]\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 { 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","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 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 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 = true,\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 * Compact inline variant with reduced padding\n * @default false\n * @deprecated Use `InlineAlert` for a short, local message (decision 0019). `inline` keeps\n * working until it is removed in 3.0. An inline alert that needs a title, action or dismiss\n * button stays an Alert.\n */\n inline?: boolean\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 $inline: boolean\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: ${({ $inline }) =>\n $inline ? semantic.space[200] : semantic.space[300]};\n padding: ${({ $inline }) =>\n $inline ? semantic.space[200] : 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: ${({ $inline }) =>\n $inline\n ? semantic.space[200]\n : 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 font-weight: ${alert.title.fontWeight};\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. The inline\n// alert's padding is too small for that, so its button stays inside the padding.\nconst StyledDismissButton = styled(IconButton)<{ $inline: boolean }>`\n margin-right: ${({ $inline }) =>\n $inline\n ? 0\n : `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 inline = false,\n ariaLive = 'polite',\n 'data-testid': dataTestId,\n ...props\n}: AlertProps) => {\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 $inline={inline}\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 $inline={inline}\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 variant?: 'default' | 'dark'\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 variant = 'default', \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} variant={variant} />\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`. `'relative'` is\n * deprecated: it behaves exactly like `'smart'`, so use `'smart'` (#82).\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 */\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 { 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 * `emphasis` is a deprecated alias for `accent` and will be removed in 3.0.\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 React, { FC } from 'react'\nimport styled from 'styled-components'\nimport { IconButton } from '../../atoms/IconButton'\nimport { Stack } from '../../atoms/Stack'\nimport { Typography } from '../../atoms/Typography'\nimport tokens from '@/lib/cssTokens'\n\ninterface PageTitleProps {\n title: string\n hasBackButton?: boolean\n subtitle?: string\n}\n\ninterface StyledPageTitleProps {\n $hasBackButton: boolean\n}\n\nconst PageTitleStyled = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledPageTitleProps>`\n margin-bottom: ${tokens.semantic.space[600]};\n margin-top: ${({ $hasBackButton }) => $hasBackButton ? tokens.semantic.space[0] : tokens.semantic.space[1200]};\n`\n\n/**\n * @deprecated PageTitle is a leftover from the personal site (its back button always links to `/music`)\n * and will be removed in the next major version. Compose a page title from `Typography` in a `Stack`:\n *\n * ```tsx\n * <Stack direction=\"column\" gap=\"md\">\n * <Typography variant=\"h1\">{title}</Typography>\n * <Typography variant=\"caption\" color=\"subdued\">{subtitle}</Typography>\n * </Stack>\n * ```\n *\n * For a back link, add an `IconButton` with your own `url` and `aria-label`.\n */\nexport const PageTitle: FC<PageTitleProps> = ({ title, hasBackButton = false, subtitle }) => {\n return (\n <PageTitleStyled $hasBackButton={hasBackButton}>\n {hasBackButton && <IconButton iconName='back' size='large' variant='naked' url='/music' aria-label='Go back to music page' />}\n <Stack direction='column' gap=\"md\">\n <Typography variant=\"h1\">{title}</Typography>\n {subtitle && <Typography variant='caption' color='subdued'>{subtitle}</Typography>}\n </Stack>\n </PageTitleStyled>\n )\n}\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 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 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 * Tab variant options for TabBar.\n * @deprecated TabBar has one look, `underline` (decision 0020). `'default'` and `'pills'` render\n * as `underline`. The type is removed in 3.0.\n */\nexport type TabVariant = 'default' | 'pills' | 'underline'\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 * Visual variant of the tabs.\n * @deprecated TabBar has one look, `underline` (decision 0020). `'default'` and `'pills'` render\n * as `underline`. Remove the prop; it is removed in 3.0.\n * @default 'underline'\n */\n variant?: TabVariant\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 // Deprecated: every variant renders as underline (decision 0020)\n variant: _variant,\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.component.transactionListItem.minHeight};\n padding: ${tokens.semantic.space[300]} ${tokens.semantic.space[300]};\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 from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\n\n// Exception to decision 0014: the gap props are typed as base spacing keys (public API),\n// so they are looked up in base.spacing until they accept semantic keys.\n// eslint-disable-next-line no-restricted-syntax\nconst gapSpacing = tokens.base.spacing\nimport type { Tokens } from '../../../types/tokens'\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?: keyof Tokens['base']['spacing']\n gapX?: keyof Tokens['base']['spacing']\n gapY?: keyof Tokens['base']['spacing']\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?: keyof Tokens['base']['spacing']\n gapSm?: keyof Tokens['base']['spacing']\n gapMd?: keyof Tokens['base']['spacing']\n gapLg?: keyof Tokens['base']['spacing']\n gapXl?: keyof Tokens['base']['spacing']\n gapX?: keyof Tokens['base']['spacing']\n gapXSm?: keyof Tokens['base']['spacing']\n gapXMd?: keyof Tokens['base']['spacing']\n gapXLg?: keyof Tokens['base']['spacing']\n gapXXl?: keyof Tokens['base']['spacing']\n gapY?: keyof Tokens['base']['spacing']\n gapYSm?: keyof Tokens['base']['spacing']\n gapYMd?: keyof Tokens['base']['spacing']\n gapYLg?: keyof Tokens['base']['spacing']\n gapYXl?: keyof Tokens['base']['spacing']\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","opacity","spaceByLayoutKey","none","auto","spacing","layout","radiusByKey","circle","backgroundByKey","page","subtle","raised","overlay","scrim","state","neutral","transparent","progressTrack","track","textColorByKey","serious","ai","borderColorByKey","input","focus","control","strong","StyledBox","templateObject_51","$display","$flexDirection","$justifyContent","$alignItems","$flexWrap","templateObject_5","$gap","templateObject_6","$m","templateObject_7","$mt","templateObject_8","$mr","templateObject_9","$mb","templateObject_10","$ml","templateObject_11","$mx","templateObject_12","$my","templateObject_13","$p","$pt","templateObject_15","$pr","$pb","$pl","templateObject_18","$px","templateObject_19","$py","templateObject_20","$width","templateObject_21","$height","templateObject_22","$maxWidth","templateObject_23","$maxHeight","templateObject_24","$minWidth","templateObject_25","$minHeight","$position","templateObject_27","$top","templateObject_28","$right","templateObject_29","$bottom","templateObject_30","$left","$borderRadius","templateObject_32","$border","templateObject_33","$borderTop","templateObject_34","$borderRight","templateObject_35","$borderBottom","templateObject_36","$borderLeft","$bg","templateObject_38","templateObject_39","$shadow","templateObject_40","elevation","$cursor","templateObject_41","$transition","templateObject_42","$hoverShadow","$hoverTransform","templateObject_43","templateObject_44","focusOffset","templateObject_46","$overflow","templateObject_48","$overflowX","templateObject_49","$overflowY","templateObject_50","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","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","displayColor","olive","periwinkle","rose","magenta","gray","blue","purple","pink","yellow","green","red","orange","categoryText","StyledCategoryLabel","VisibleContent","HiddenLabel","CategoryLabel","accessibleLabel","toLabelSize","CategoryBadge","chip","$selected","$clickable","$disabled","interactiveStates","sizeStyles","StyledChip","IconContainer","CloseButton","closeButton","Chip","ariaDescribedBy","isClickable","Boolean","normalizedVariant","content","handleKeyDown","event","preventDefault","LegacyChip","newVariant","InputChip","onDismiss","isDismissible","handleDismiss","stopPropagation","handleCloseKeyDown","closeButtonLabel","type","FilterChip","BooleanChip","StyledSuggestionChip","SuggestionChip","StyledContainer","Container","PictureWrapper","clickableImage","press","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","progressBar","ProgressBarFill","standard","min","$value","ProgressBar","ariaLabelledBy","labelledBy","separatorTokens","StyledDivider","$orientation","borderProperty","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","showIcon","liveRegion","statusConfig","displayLabel","StatusBadge","StatusLabel","StyledTag","Tag","tagSize","labels","suggested","removal","StyledAILabel","StyledIcon","AILabel","kind","labelSize","StyledBalanceSection","StyledTrendSection","StyledStackWrapper","StyledHeaderWrapper","accountCard","header","trendToIcon","up","down","trendToColor","AccountCard","accountName","balance","accountNumber","trend","trendValue","action","secondaryAction","trendIcon","trendColor","ListSpacingContext","createContext","StyledListItem","li","touchTarget","$interactive","$destructive","StyledItemContent","$spacing","StyledTextContent","StyledIconContainer","StyledRightContent","StyledChevronIcon","$expanded","StyledExpandedContent","listItem","expandedIndent","compact","comfortable","ListItem","expandable","expanded","onToggle","destructive","spacingProp","customRole","ariaSelected","id","customTabIndex","customOnKeyDown","listSpacing","useContext","isInteractive","contentRole","ariaDisabled","ariaCurrent","Provider","EXIT_DURATION_MS","parseInt","tokenValues","usePresence","isOpen","exitMs","isMounted","setIsMounted","useEffect","timer","setTimeout","clearTimeout","isPresent","isExiting","useInert","ref","isInert","node","current","setAttribute","removeAttribute","slideUp","fadeIn","StyledOverlay","layer","modal","$isExiting","StyledActionSheet","slow","StyledHeader","StyledHeaderContent","StyledCloseButton","StyledActionsList","ul","ActionSheet","onClose","description","actions","closeOnOverlayClick","closeOnEscape","showCloseButton","sheetRef","useRef","previousActiveElement","document","activeElement","focusableElements","querySelectorAll","firstElement","lastElement","length","shiftKey","addEventListener","frame","requestAnimationFrame","firstFocusable","querySelector","originalOverflow","cancelAnimationFrame","removeEventListener","handleOverlayClick","currentTarget","handleActionClick","onSelect","destructiveIndex","findIndex","hasDestructive","createPortal","_Fragment","index","React","Fragment","detectSpeechRecognitionConstructor","targetWindow","candidateWindow","SpeechRecognition","webkitSpeechRecognition","normalizeTranscript","normalizeMessage","mapSpeechErrorCode","defaultVoiceErrorMessage","code","textDrivenState","hasText","agentInputStateTransition","currentState","DEFAULT_LISTENING_MESSAGE","DEFAULT_PROCESSING_MESSAGE","COUNTER_THRESHOLD","useIsomorphicLayoutEffect","useLayoutEffect","rotateRing","$docked","sticky","ControlsRow","InputShell","borderWidth","borderColor","Input","textarea","placeholder","InputActions","CircularActionIconButton","InputWrapper","MicButtonWrapper","ringMask","MicListeningRing","thick","$reducedMotion","MAX_SUGGESTIONS","regionEnter","templateObject_14","distance","regionFadeIn","regionFadeThenCollapse","templateObject_16","regionFadeOut","templateObject_17","RegionItem","$exiting","$reducedExit","RegionItemContent","ReviewBar","ReviewActions","SuggestionList","StatusRow","templateObject_26","StatusText","StatusAnnouncement","StatusEnd","VisuallyHidden","MeterContainer","templateObject_31","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","useId","statusId","counterId","currentValue","currentValueRef","messageLength","isOverLimit","effectiveSubmitting","effectiveState","isListening","hasVoice","updateMachineState","useCallback","previousState","updateValue","nextValue","clearNoSpeechTimeout","stopMeter","__awaiter","getTracks","forEach","stop","close","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","Date","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","options","clear","_w","shownReview","setShownReview","_x","lastReviewAction","setLastReviewAction","openProposalId","_y","announcedProposalId","setAnnouncedProposalId","_z","replacementCount","setReplacementCount","cappedSuggestions","useMemo","showSuggestions","_0","shownSuggestions","setShownSuggestions","suggestionCount","reviewAnnouncement","summary","onReviewDiscard","onDiscard","onReviewUndo","onUndo","onPickSuggestion","mediaQuery","matchMedia","sync","matches","displayedValue","filter","lastFieldWidthRef","resizeField","field","clientWidth","scrollX","scrollY","scrollHeight","scrollTo","clientHeight","ResizeObserver","observer","observe","disconnect","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","$inline","severity","$appearance","appearance","StyledContent","StyledTitle","StyledMessage","StyledActions","StyledDismissSlot","$lineHeight","StyledDismissButton","Alert","dismissible","inline","ariaLive","phase","setPhase","setReducedExit","exitStyle","setExitStyle","alertRef","onDismissRef","getComputedStyle","paddingTop","paddingBottom","boxSizing","offsetHeight","parseFloat","borderTopWidth","borderBottomWidth","call","forwarded","handleAnimationEnd","onAnimationEnd","pseudoElement","includes","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","row","$labelPosition","StyledCheckboxLabel","StyledFieldContainer","StyledHelperText","$error","colorError","Checkbox","checked","indeterminate","labelPosition","providedId","ariaDescribedby","generatedId","helperTextId","errorId","describedBy","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","floating","menu","DropdownOption","$isSelected","$isFocused","Dropdown","setIsOpen","focusedIndex","setFocusedIndex","dropdownRef","dropdownId","selectedOption","find","option","hasError","helperId","handleClickOutside","contains","trigger","newIndex","handleOptionClick","handleTriggerClick","selectedIndex","optionId","marginBottom","StyledList","$dividers","List","dividers","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","String","handleIncrement","inputElement","numValue","newValue","syntheticEvent","handleDecrement","handleChange","inputValue","test","parsedValue","isIncrementDisabled","isDecrementDisabled","ariaDescribedByIds","inputMode","PageTitleStyled","$hasBackButton","PageTitle","hasBackButton","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","items","s","push","data","r","handleInputChange","handleFocus","onFocus","handleBlur","onBlur","handleSuggestionClick","handleClear","scrollIntoView","block","showClearButton","hasItems","isString","slideInRight","slideInLeft","slideInTop","slideInBottom","StyledSheet","isDrawer","margin","StyledSheetContent","Sheet","StyledSliderContainer","StyledSliderTrackContainer","StyledTrack","StyledTrackFill","StyledThumb","slider","thumb","pointerTarget","$range","$active","StyledValueLabel","StyledMinMaxLabels","Slider","controlledValue","controlledRangeValue","rangeValue","defaultRangeValue","onRangeChange","showValueLabel","trackRef","activeThumb","setActiveThumb","endDragRef","isRange","internalRangeValue","setInternalRangeValue","currentRangeValue","clampValue","clamped","stepped","round","positionToValue","clientX","rect","getBoundingClientRect","percent","rawValue","valueToPercent","handleSingleChange","clampedValue","handleRangeChange","newMin","newMax","clampedMin","clampedMax","orderedMin","orderedMax","handleTrackClick","closest","minVal","maxVal","distToMin","distToMax","handleThumbPointerDown","pointerType","pointerId","setPointerCapture","handlePointerMove","endDrag","handlePointerEnd","valueChange","singlePercent","minPercent","maxPercent","onPointerDown","StyledTabList","tabBar","scrollbar","StyledTab","$isActive","StyledBadge","TabBar","tabs","activeTab","onTabChange","tabRefs","tab","handleTabClick","el","TextField","transactionListItem","StyledAvatarSection","StyledMainContent","StyledTopRow","StyledMerchantSection","StyledBottomRow","StyledMetadata","StyledIconIndicator","StyledTruncatedText","categoryConfig","shopping","dining","transport","entertainment","bills","other","TransactionListItem","merchant","merchantLogo","hasReceipt","hasNote","amountVariant","categoryData","gapSpacing","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","$gapLg","$gapXl","$gapXSm","$gapXMd","$gapXLg","$gapXXl","$gapYSm","$gapYMd","$gapYLg","$gapYXl","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/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/CategoryBadge/CategoryBadge.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/BooleanChip.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/StatusBadge/StatusBadge.tsx","../src/components/atoms/StatusLabel/StatusLabel.tsx","../src/components/atoms/Tag/Tag.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/lib/usePresence.ts","../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/Modal/Modal.tsx","../src/components/molecules/TextField/InputBase.tsx","../src/components/molecules/NumberInput/NumberInput.tsx","../src/components/molecules/PageTitle/PageTitle.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/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` and `accent`, plus deprecated aliases of `accent` kept until 3.0.\n */\nexport type BadgeVariant = 'default' | 'accent' | DeprecatedBadgeVariant\n\n/**\n * Deprecated Badge variants, each rendered as `accent` until 3.0 (decisions 0029, 0045).\n * @deprecated Use `accent`. For a count of items with a status, use StatusLabel.\n */\nexport type DeprecatedBadgeVariant = 'primary' | 'error' | 'warning' | 'success'\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. `primary` is a deprecated alias for\n * `accent`, because Button's `primary` is near-black (decision 0029). `error`, `warning` and\n * `success` are deprecated aliases for `accent`: a badge's colour alone can't carry a status, so\n * a count of items with a status uses the status pattern instead (\"3 failed\" with StatusLabel).\n * All four keep working until they are removed in 3.0.\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 // 'primary', 'error', 'warning' and 'success' are deprecated aliases for 'accent', removed in\n // 3.0: 'primary' (#169), and the status colours, because a badge's colour alone can't carry a\n // status (decision 0045, #263)\n case 'accent':\n case 'primary':\n case 'error':\n case 'warning':\n case 'success':\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// Props whose values are token keys keep their published vocabulary in 2.x (P7), but read the\n// semantic grammar's names (decision 0031, #189). Each map covers every key the prop type allows,\n// so TypeScript fails here if a key is added without a mapping.\nconst { semantic } = tokens\nconst { color, space, radius, surface, opacity } = semantic\n\ntype Semantic = Tokens['semantic']\n\n/** Box's spacing props (`p`, `m`, `gap`…): the old layout scale's keys, read from `space`. */\nexport const spaceByLayoutKey: Record<keyof Semantic['spacing']['layout'], 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: it stays until the keyword question is settled (0031)\n auto: semantic.spacing.layout.auto,\n}\n\n/** Box's `borderRadius` prop: the old radius keys, read from `radius`. */\nexport const radiusByKey: Record<keyof Semantic['border']['radius'], 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/** Fills with no value of their own: a strong fill's states mix in an overlay (decision 0048). */\ntype StateMixedFill = 'emphasis-hover' | 'emphasis-pressed'\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.${Exclude<keyof Semantic['color']['fill'], StateMixedFill>}`\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 `bg` prop: the old background keys, read from `surface` and `color.fill`. */\nexport const backgroundByKey: Record<keyof Semantic['color']['background'], string> = {\n default: surface.base,\n page: surface.base,\n subtle: surface.raised,\n overlay: surface.scrim,\n emphasis: color.fill.emphasis,\n // A strong fill's states mix its content colour in at the state-layer opacity (decision 0048)\n 'emphasis-hover': `color-mix(in srgb, ${color.fill.emphasis}, ${color.text.inverse} calc(${opacity.state.hover} * 100%))`,\n 'emphasis-active': `color-mix(in srgb, ${color.fill.emphasis}, ${color.text.inverse} calc(${opacity.state.pressed} * 100%))`,\n surface: color.fill.muted,\n inverse: color.fill.inverse,\n interactive: color.fill.accent,\n 'interactive-hover': color.fill['accent-hover'],\n 'interactive-active': color.fill['accent-pressed'],\n 'interactive-subtle': color.fill['accent-muted'],\n 'interactive-subtle-hover': color.fill['accent-muted-hover'],\n 'interactive-subtle-active': color.fill['accent-muted-pressed'],\n error: color.fill.danger,\n 'error-hover': color.fill['danger-hover'],\n 'error-active': color.fill['danger-pressed'],\n 'error-subtle': color.fill['danger-muted'],\n success: color.fill.success,\n 'success-subtle': color.fill['success-muted'],\n warning: color.fill.warning,\n 'warning-subtle': color.fill['warning-muted'],\n disabled: color.fill.disabled,\n neutral: color.fill.default,\n 'neutral-hover': color.fill['default-hover'],\n 'neutral-active': color.fill['default-pressed'],\n transparent: color.fill.none,\n 'hover-overlay': color.fill['none-hover'],\n 'active-overlay': color.fill['none-pressed'],\n 'inverse-overlay': color.fill['inverse-none-hover'],\n // Moved to the component tier (decision 0031 §6)\n progressTrack: tokens.component.track.background,\n}\n\n/** Box's `color` prop: text colours, old and new keys. */\nexport const textColorByKey: Record<keyof Semantic['color']['text'], string> = {\n default: color.text.default,\n emphasis: color.text.default,\n inverse: color.text.inverse,\n disabled: color.text.disabled,\n success: color.text.success,\n warning: color.text.warning,\n muted: color.text.muted,\n accent: color.text.accent,\n 'accent-hover': color.text.accent,\n 'accent-pressed': color.text.accent,\n danger: color.text.danger,\n serious: color.text.serious,\n ai: color.text.ai,\n subdued: color.text.muted,\n interactive: color.text.accent,\n 'interactive-hover': color.text.accent,\n 'interactive-active': color.text.accent,\n error: color.text.danger,\n}\n\n/** Box's border props: border colours, old and new keys. */\nexport const borderColorByKey: Record<keyof Semantic['color']['border'], string> = {\n default: color.border.default,\n success: color.border.success,\n warning: color.border.warning,\n none: color.border.none,\n emphasis: color.border.default,\n input: color.border.input,\n 'input-hover': color.border['input-hover'],\n focus: color.border.focus,\n accent: color.border.accent,\n danger: color.border.danger,\n serious: color.border.serious,\n ai: color.border.ai,\n subtle: color.border.default,\n control: color.border.input,\n // `strong` split by use (0031); as a generic firm outline it is the hovered-input border\n strong: color.border['input-hover'],\n interactive: color.border.accent,\n error: color.border.danger,\n}\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\nimport type { Tokens } from '../../../types/tokens'\nimport { backgroundByKey, backgroundByPath, borderColorByKey, radiusByKey, spaceByLayoutKey, textColorByKey } from '../../../lib/tokenAliases'\nimport type { BackgroundPath } from '../../../lib/tokenAliases'\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`.\n */\nexport type BoxBackground = BackgroundPath | DeprecatedBoxBackground\n\n/**\n * The old `semantic.color.background` keys, removed in 3.0 with those tokens (#99, #304).\n * @deprecated Use the token path: `default` and `page` → `surface.base`; `subtle` → `surface.raised`;\n * `overlay` → `surface.scrim`; `surface` → `color.fill.muted`; `transparent` → `color.fill.none`;\n * `progressTrack` → `color.fill.default`; `hover-overlay`, `active-overlay` and `inverse-overlay` →\n * `color.fill.none-hover`, `none-pressed` and `inverse-none-hover`. The rest become `color.fill.*`\n * with `interactive` → `accent`, `error` → `danger`, `neutral` → `default`, `-subtle` → `-muted`\n * and `-active` → `-pressed`: `interactive-subtle` → `color.fill.accent-muted`, `emphasis` →\n * `color.fill.emphasis`. `emphasis-hover`\n * and `emphasis-active` have no static replacement: a strong fill's states belong to the control\n * that has them (decision 0048).\n */\nexport type DeprecatedBoxBackground = keyof Tokens['semantic']['color']['background']\n\nconst backgroundColor = (bg: BoxBackground): string =>\n bg in backgroundByPath\n ? backgroundByPath[bg as BackgroundPath]\n : backgroundByKey[bg as DeprecatedBoxBackground]\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?: keyof Tokens['semantic']['spacing']['layout']\n \n // Spacing (using semantic layout tokens)\n m?: keyof Tokens['semantic']['spacing']['layout']\n mt?: keyof Tokens['semantic']['spacing']['layout']\n mr?: keyof Tokens['semantic']['spacing']['layout']\n mb?: keyof Tokens['semantic']['spacing']['layout']\n ml?: keyof Tokens['semantic']['spacing']['layout']\n mx?: keyof Tokens['semantic']['spacing']['layout']\n my?: keyof Tokens['semantic']['spacing']['layout']\n p?: keyof Tokens['semantic']['spacing']['layout']\n pt?: keyof Tokens['semantic']['spacing']['layout']\n pr?: keyof Tokens['semantic']['spacing']['layout']\n pb?: keyof Tokens['semantic']['spacing']['layout']\n pl?: keyof Tokens['semantic']['spacing']['layout']\n px?: keyof Tokens['semantic']['spacing']['layout']\n py?: keyof Tokens['semantic']['spacing']['layout']\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?: keyof Tokens['semantic']['border']['radius']\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`. The old\n * background keys (`default`, `subtle`, `surface`…) are deprecated and removed in 3.0.\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 && css`border: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$border]};`}\n ${props => props.$borderTop && css`border-top: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderTop]};`}\n ${props => props.$borderRight && css`border-right: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderRight]};`}\n ${props => props.$borderBottom && css`border-bottom: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderBottom]};`}\n ${props => props.$borderLeft && css`border-left: ${tokens.semantic.border.width.thin} solid ${borderColorByKey[props.$borderLeft]};`}\n \n // Background & Color\n ${props => props.$bg && css`background-color: ${backgroundColor(props.$bg)};`}\n ${props => 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 /** @deprecated Use `accent`. `emphasis` will be removed in 3.0. */\n | 'emphasis'\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 * `emphasis` is a deprecated alias for `accent` and will be removed in 3.0.\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 // Deprecated alias for accent; removed in 3.0\n emphasis: {\n bg: button.variants.emphasis.backgroundColor,\n text: button.variants.emphasis.textColor,\n hoverBg: button.variants.emphasis.hover.backgroundColor,\n activeBg: button.variants.emphasis.active.backgroundColor,\n disabledBg: button.variants.emphasis.disabled.backgroundColor,\n disabledText: button.variants.emphasis.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 const config = variantConfig[$variant]\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 * Deprecated category colour names, each an alias of the nearest display colour until 3.0\n * (decision 0043): blue is periwinkle; purple is magenta; pink, red and orange are rose; yellow and\n * green are olive.\n * @deprecated Use a CategoryDisplayColor: 'olive', 'periwinkle', 'rose', 'magenta' or 'gray'.\n */\nexport type DeprecatedCategoryColor = 'blue' | 'purple' | 'pink' | 'yellow' | 'green' | 'red' | 'orange'\n\n/**\n * Category color options for CategoryLabel. The old hue names still work, as aliases of the\n * nearest display colour, until 3.0.\n */\nexport type CategoryColor = CategoryDisplayColor | DeprecatedCategoryColor\n\nconst displayColor: Record<CategoryColor, CategoryDisplayColor> = {\n olive: 'olive',\n periwinkle: 'periwinkle',\n rose: 'rose',\n magenta: 'magenta',\n gray: 'gray',\n blue: 'periwinkle',\n purple: 'magenta',\n pink: 'rose',\n yellow: 'olive',\n green: 'olive',\n red: 'rose',\n orange: 'rose',\n}\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'. The old hue names are\n * deprecated aliases (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 $color={displayColor[color]}\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 React from 'react'\nimport { CategoryLabel, type CategoryLabelProps } from '../CategoryLabel/CategoryLabel'\n\nexport type { CategoryColor, CategoryVariant } from '../CategoryLabel/CategoryLabel'\n\n/**\n * Size options for CategoryBadge\n * @deprecated Use `CategoryLabelSize`: CategoryBadge `small` is CategoryLabel `medium`, and\n * `medium` is `large` (decision 0018).\n */\nexport type CategorySize = 'small' | 'medium'\n\n/**\n * Props for the CategoryBadge component\n * @deprecated Use `CategoryLabelProps`. CategoryBadge is renamed CategoryLabel and is removed in\n * 3.0 (decision 0018).\n */\nexport interface CategoryBadgeProps extends Omit<CategoryLabelProps, 'size'> {\n /**\n * Size of the badge\n * @default 'medium'\n */\n size?: CategorySize\n}\n\n// CategoryBadge sizes on the decision 0018 scale\nconst toLabelSize = { small: 'medium', medium: 'large' } as const\n\n/**\n * CategoryBadge displays a category label.\n *\n * @deprecated Renamed to `CategoryLabel` (same `color` and `variant`). Map `size=\"small\"` to\n * `\"medium\"`, and `size=\"medium\"` (or no size) to `\"large\"`, CategoryLabel's default.\n * CategoryBadge is removed in 3.0 (decision 0018).\n */\nexport const CategoryBadge: React.FC<CategoryBadgeProps> = ({ size = 'medium', ...props }) => (\n <CategoryLabel {...props} size={toLabelSize[size]} />\n)\n\nCategoryBadge.displayName = 'CategoryBadge'\n","import tokens from '../../../../lib/cssTokens'\nimport { forcedColors } from '../../../../lib/styleUtils'\nimport { ChipVariant } from './types'\n\nconst { component: { chip }, semantic } = tokens\n\ninterface StyledChipProps {\n $variant: ChipVariant\n $disabled?: boolean\n $clickable?: boolean\n $selected?: boolean\n}\n\n// Helper function to get variant styles matching Button's approach\nexport const getVariantStyles = ({ $variant, $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 ($variant) {\n case 'emphasis':\n return `\n background-color: ${chip.variants.emphasis.backgroundColor};\n color: ${chip.variants.emphasis.textColor};\n \n &:hover {\n background-color: ${$disabled ? chip.variants.emphasis.disabled.backgroundColor : ($clickable ? chip.variants.emphasis.hover.backgroundColor : chip.variants.emphasis.backgroundColor)};\n }\n \n &:active {\n background-color: ${$disabled ? chip.variants.emphasis.disabled.backgroundColor : ($clickable ? chip.variants.emphasis.active.backgroundColor : chip.variants.emphasis.backgroundColor)};\n }\n \n ${$disabled ? `\n background-color: ${chip.variants.emphasis.disabled.backgroundColor};\n color: ${chip.variants.emphasis.disabled.textColor};\n ` : ''}\n `\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 'interactive':\n return `\n background-color: ${chip.variants.interactive.backgroundColor};\n color: ${chip.variants.interactive.textColor};\n \n &:hover {\n background-color: ${$disabled ? chip.variants.interactive.disabled.backgroundColor : ($clickable ? chip.variants.interactive.hover.backgroundColor : chip.variants.interactive.backgroundColor)};\n }\n \n &:active {\n background-color: ${$disabled ? chip.variants.interactive.disabled.backgroundColor : ($clickable ? chip.variants.interactive.active.backgroundColor : chip.variants.interactive.backgroundColor)};\n }\n \n ${$disabled ? `\n background-color: ${chip.variants.interactive.disabled.backgroundColor};\n color: ${chip.variants.interactive.disabled.textColor};\n ` : ''}\n `\n case 'default':\n default:\n return `\n background-color: ${chip.default.backgroundColor};\n color: ${chip.default.textColor};\n \n &:hover {\n background-color: ${$disabled ? chip.disabled.backgroundColor : ($clickable ? chip.hover.backgroundColor : chip.default.backgroundColor)};\n }\n \n &:active {\n background-color: ${$disabled ? chip.disabled.backgroundColor : ($clickable ? chip.active.backgroundColor : chip.default.backgroundColor)};\n }\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, LegacyVariant } from './shared/types'\nimport { StyledChip } from './shared/ChipBase'\n\nexport interface ChipProps extends BaseChipProps {\n /**\n * Visual style. Only `default` stays in 3.0. `emphasis`, `subtle`, `interactive`, `light`\n * and `dark` are deprecated and will be removed (decision 0016).\n * @default 'default'\n */\n variant?: ChipVariant | LegacyVariant\n /**\n * Click handler.\n * @deprecated Removed in 3.0: the static Chip is not interactive. For a clickable action use a\n * Button; for a toggle use `BooleanChip` (`FilterChip` in 3.0).\n */\n onClick?: () => void\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 (`default` variant only)\n * - InputChip: a removable value, such as an applied filter (formerly `FilterChip`)\n * - BooleanChip: toggles a filter on and off (becomes `FilterChip` in 3.0)\n *\n * The `emphasis`, `subtle`, `interactive`, `light` and `dark` variants and `onClick` are\n * deprecated and will be removed in 3.0.\n */\nexport const Chip: React.FC<ChipProps> = ({\n children,\n variant = 'default',\n // Deprecated and ignored: chips have one size (decision 0035)\n size: _size,\n onClick,\n disabled = false,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n role,\n title,\n ...props\n}) => {\n const isClickable = Boolean(onClick && !disabled)\n \n // Map legacy variants to new variants\n const normalizedVariant: ChipVariant = \n variant === 'light' ? 'default' :\n variant === 'dark' ? 'emphasis' :\n variant as ChipVariant\n \n // Support legacy title prop\n const content = children !== undefined ? children : title\n \n const handleClick = () => {\n if (onClick && !disabled) {\n onClick()\n }\n }\n \n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isClickable && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault()\n handleClick()\n }\n }\n \n return (\n <StyledChip\n $variant={normalizedVariant}\n $disabled={disabled || undefined}\n $clickable={isClickable || undefined}\n onClick={isClickable ? handleClick : undefined}\n onKeyDown={handleKeyDown}\n tabIndex={isClickable ? 0 : undefined}\n role={role || (isClickable ? 'button' : undefined)}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled ? 'true' : undefined}\n data-testid={dataTestId}\n {...props}\n >\n {content}\n </StyledChip>\n )\n}\n\n// Legacy component for backward compatibility\nexport interface LegacyChipProps {\n title: string\n variant?: LegacyVariant\n}\n\nexport const LegacyChip: React.FC<LegacyChipProps> = ({ title, variant = 'light' }) => {\n const newVariant = variant === 'dark' ? 'emphasis' : 'default'\n return <Chip variant={newVariant}>{title}</Chip>\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 // Deprecated and ignored: chips have one size (decision 0035)\n size: _size,\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 $variant=\"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 { InputChip, type InputChipProps } from './InputChip'\n\n/**\n * @deprecated Renamed to `InputChipProps`. In 3.0 `FilterChipProps` becomes the props of the toggle chip.\n */\nexport type FilterChipProps = InputChipProps\n\n/**\n * FilterChip - a removable chip with an optional selected state.\n *\n * @deprecated Renamed to `InputChip`; in 3.0 `FilterChip` becomes the toggle chip (today's\n * `BooleanChip`). Replace `FilterChip` with `InputChip` first, then `BooleanChip` with\n * `FilterChip` when you upgrade to 3.0 (decision 0016).\n */\nexport const FilterChip = InputChip\n","import React from 'react'\nimport { Icon } from '../Icon'\nimport { BaseChipProps } from './shared/types'\nimport { StyledChip, IconContainer } from './shared/ChipBase'\n\n/** @deprecated Becomes `FilterChipProps` in 3.0 (decision 0016). */\nexport interface BooleanChipProps 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 * BooleanChip - Toggleable chip for quick filter controls\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 * @deprecated Becomes `FilterChip` in 3.0, with the same props. Keep using `BooleanChip`\n * until you upgrade; in 3.0, replace `FilterChip` with `InputChip` first, then\n * `BooleanChip` with `FilterChip` (decision 0016).\n */\nexport const BooleanChip: React.FC<BooleanChipProps> = ({\n children,\n selected,\n onClick,\n // Deprecated and ignored: chips have one size (decision 0035)\n size: _size,\n disabled = false,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}) => {\n const handleClick = () => {\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 $variant=\"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'` is deprecated: it has always behaved exactly like\n * `'smart'`, so use `'smart'`. It keeps working until it is removed in 3.0 (#82).\n */\nexport type DateFormatMode = 'absolute' | 'relative' | '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 * `'relative'` is deprecated: it behaves exactly like `'smart'`, so use `'smart'`. It keeps\n * working until it is removed in 3.0 (#82).\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 'relative': // Deprecated alias for 'smart', removed in 3.0 (#82)\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 shared by StatusLabel and the deprecated StatusBadge\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 * Shared implementation of StatusLabel and the deprecated StatusBadge. Internal: not exported\n * from the package. `showIcon` exists only for StatusBadge. StatusLabel always shows the status icon\n * at the medium size, and at the small size the shape for coloured statuses (decisions 0018, 0045).\n */\nexport const StatusLabelBase: React.FC<StatusLabelProps & { showIcon?: boolean }> = ({\n status,\n label,\n size = 'medium',\n showIcon = true,\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 {showIcon && size === 'medium' && (\n <Icon\n name={statusConfig.icon}\n size={sizeStyles.iconSize}\n iconColor=\"inherit\"\n />\n )}\n {showIcon && 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 '../StatusLabel/StatusLabelBase'\n\nexport type { StatusType, StatusSize } from '../StatusLabel/StatusLabelBase'\n\n/**\n * Props for the StatusBadge component\n * @deprecated Use `StatusLabelProps`. StatusBadge is renamed StatusLabel and is removed in 3.0\n * (decision 0018).\n */\nexport interface StatusBadgeProps extends StatusLabelProps {\n /**\n * Whether to show the icon\n * @default true\n * @deprecated StatusLabel always shows its status icon or shape with the text, so status is\n * never conveyed by colour alone (decision 0045).\n */\n showIcon?: boolean\n}\n\n/**\n * StatusBadge displays a transaction or task status.\n *\n * @deprecated Renamed to `StatusLabel` (same `status`, `size`, `label`, `liveRegion`), which always\n * shows its status icon or shape. StatusBadge is removed in 3.0 (decision 0018).\n */\nexport const StatusBadge: React.FC<StatusBadgeProps> = (props) => <StatusLabelBase {...props} />\n\nStatusBadge.displayName = 'StatusBadge'\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 */\n// showIcon comes last so no caller (for example plain JavaScript) can hide the icon\nexport const StatusLabel: React.FC<StatusLabelProps> = (props) => <StatusLabelBase {...props} showIcon />\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. `success`, `warning` and `error` are deprecated (status belongs to\n * `StatusLabel`), and so is `interactive` (a blue fill on a static label is decoration).\n * They keep working until they are removed in 3.0 (decision 0029).\n * @default 'default'\n */\n variant?: 'default' | 'interactive' | 'success' | 'warning' | 'error' | '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 'interactive':\n return color.fill['accent-muted']\n case 'success':\n return color.fill['success-muted']\n case 'warning':\n return color.fill['warning-muted']\n case 'error':\n return color.fill['danger-muted']\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 'interactive':\n return color.text.accent\n case 'success':\n return color.text.success\n case 'warning':\n return color.text.warning\n case 'error':\n return color.text.danger\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 'interactive':\n return `${semantic.border.width.thin} solid ${color.border.accent}`\n case 'success':\n return `${semantic.border.width.thin} solid ${color.border.success}`\n case 'warning':\n return `${semantic.border.width.thin} solid ${color.border.warning}`\n case 'error':\n return `${semantic.border.width.thin} solid ${color.border.danger}`\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 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 */\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.touchTarget};\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 padding: ${({ $spacing }) =>\n $spacing === 'compact'\n ? `${semantic.space[200]} ${semantic.space[300]}`\n : `${semantic.space[300]} ${semantic.space[400]}`};\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 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 margin: 0 ${\n $spacing === 'compact' \n ? semantic.space[300] \n : semantic.space[400]\n } ${\n $spacing === 'compact'\n ? semantic.space[200]\n : semantic.space[300]\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 { 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","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 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 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 = true,\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 * Compact inline variant with reduced padding\n * @default false\n * @deprecated Use `InlineAlert` for a short, local message (decision 0019). `inline` keeps\n * working until it is removed in 3.0. An inline alert that needs a title, action or dismiss\n * button stays an Alert.\n */\n inline?: boolean\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 $inline: boolean\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: ${({ $inline }) =>\n $inline ? semantic.space[200] : semantic.space[300]};\n padding: ${({ $inline }) =>\n $inline ? semantic.space[200] : 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: ${({ $inline }) =>\n $inline\n ? semantic.space[200]\n : 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 font-weight: ${alert.title.fontWeight};\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. The inline\n// alert's padding is too small for that, so its button stays inside the padding.\nconst StyledDismissButton = styled(IconButton)<{ $inline: boolean }>`\n margin-right: ${({ $inline }) =>\n $inline\n ? 0\n : `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 inline = false,\n ariaLive = 'polite',\n 'data-testid': dataTestId,\n ...props\n}: AlertProps) => {\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 $inline={inline}\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 $inline={inline}\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 variant?: 'default' | 'dark'\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 variant = 'default', \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} variant={variant} />\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`. `'relative'` is\n * deprecated: it behaves exactly like `'smart'`, so use `'smart'` (#82).\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 */\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 { 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 * `emphasis` is a deprecated alias for `accent` and will be removed in 3.0.\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 React, { FC } from 'react'\nimport styled from 'styled-components'\nimport { IconButton } from '../../atoms/IconButton'\nimport { Stack } from '../../atoms/Stack'\nimport { Typography } from '../../atoms/Typography'\nimport tokens from '@/lib/cssTokens'\n\ninterface PageTitleProps {\n title: string\n hasBackButton?: boolean\n subtitle?: string\n}\n\ninterface StyledPageTitleProps {\n $hasBackButton: boolean\n}\n\nconst PageTitleStyled = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledPageTitleProps>`\n margin-bottom: ${tokens.semantic.space[600]};\n margin-top: ${({ $hasBackButton }) => $hasBackButton ? tokens.semantic.space[0] : tokens.semantic.space[1200]};\n`\n\n/**\n * @deprecated PageTitle is a leftover from the personal site (its back button always links to `/music`)\n * and will be removed in the next major version. Compose a page title from `Typography` in a `Stack`:\n *\n * ```tsx\n * <Stack direction=\"column\" gap=\"md\">\n * <Typography variant=\"h1\">{title}</Typography>\n * <Typography variant=\"caption\" color=\"subdued\">{subtitle}</Typography>\n * </Stack>\n * ```\n *\n * For a back link, add an `IconButton` with your own `url` and `aria-label`.\n */\nexport const PageTitle: FC<PageTitleProps> = ({ title, hasBackButton = false, subtitle }) => {\n return (\n <PageTitleStyled $hasBackButton={hasBackButton}>\n {hasBackButton && <IconButton iconName='back' size='large' variant='naked' url='/music' aria-label='Go back to music page' />}\n <Stack direction='column' gap=\"md\">\n <Typography variant=\"h1\">{title}</Typography>\n {subtitle && <Typography variant='caption' color='subdued'>{subtitle}</Typography>}\n </Stack>\n </PageTitleStyled>\n )\n}\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 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 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 * Tab variant options for TabBar.\n * @deprecated TabBar has one look, `underline` (decision 0020). `'default'` and `'pills'` render\n * as `underline`. The type is removed in 3.0.\n */\nexport type TabVariant = 'default' | 'pills' | 'underline'\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 * Visual variant of the tabs.\n * @deprecated TabBar has one look, `underline` (decision 0020). `'default'` and `'pills'` render\n * as `underline`. Remove the prop; it is removed in 3.0.\n * @default 'underline'\n */\n variant?: TabVariant\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 // Deprecated: every variant renders as underline (decision 0020)\n variant: _variant,\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.component.transactionListItem.minHeight};\n padding: ${tokens.semantic.space[300]} ${tokens.semantic.space[300]};\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 from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../lib/cssTokens'\n\n// Exception to decision 0014: the gap props are typed as base spacing keys (public API),\n// so they are looked up in base.spacing until they accept semantic keys.\n// eslint-disable-next-line no-restricted-syntax\nconst gapSpacing = tokens.base.spacing\nimport type { Tokens } from '../../../types/tokens'\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?: keyof Tokens['base']['spacing']\n gapX?: keyof Tokens['base']['spacing']\n gapY?: keyof Tokens['base']['spacing']\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?: keyof Tokens['base']['spacing']\n gapSm?: keyof Tokens['base']['spacing']\n gapMd?: keyof Tokens['base']['spacing']\n gapLg?: keyof Tokens['base']['spacing']\n gapXl?: keyof Tokens['base']['spacing']\n gapX?: keyof Tokens['base']['spacing']\n gapXSm?: keyof Tokens['base']['spacing']\n gapXMd?: keyof Tokens['base']['spacing']\n gapXLg?: keyof Tokens['base']['spacing']\n gapXXl?: keyof Tokens['base']['spacing']\n gapY?: keyof Tokens['base']['spacing']\n gapYSm?: keyof Tokens['base']['spacing']\n gapYMd?: keyof Tokens['base']['spacing']\n gapYLg?: keyof Tokens['base']['spacing']\n gapYXl?: keyof Tokens['base']['spacing']\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","opacity","spaceByLayoutKey","none","auto","spacing","layout","radiusByKey","circle","backgroundByPath","raised","scrim","serious","backgroundByKey","page","subtle","overlay","state","neutral","transparent","progressTrack","track","textColorByKey","ai","borderColorByKey","input","focus","control","strong","backgroundColor","bg","StyledBox","templateObject_51","$display","$flexDirection","$justifyContent","$alignItems","$flexWrap","templateObject_5","$gap","templateObject_6","$m","templateObject_7","$mt","templateObject_8","$mr","templateObject_9","$mb","templateObject_10","$ml","templateObject_11","$mx","templateObject_12","$my","templateObject_13","$p","$pt","templateObject_15","$pr","$pb","$pl","templateObject_18","$px","templateObject_19","$py","templateObject_20","$width","templateObject_21","$height","templateObject_22","$maxWidth","templateObject_23","$maxHeight","templateObject_24","$minWidth","templateObject_25","$minHeight","$position","templateObject_27","$top","templateObject_28","$right","templateObject_29","$bottom","templateObject_30","$left","$borderRadius","templateObject_32","$border","templateObject_33","$borderTop","templateObject_34","$borderRight","templateObject_35","$borderBottom","templateObject_36","$borderLeft","$bg","templateObject_38","templateObject_39","$shadow","templateObject_40","elevation","$cursor","templateObject_41","$transition","templateObject_42","$hoverShadow","$hoverTransform","templateObject_43","templateObject_44","focusOffset","templateObject_46","$overflow","templateObject_48","$overflowX","templateObject_49","$overflowY","templateObject_50","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","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","baseButtonStyles","feedback","outline","getVariantStyles","variantConfig","primary","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","displayColor","olive","periwinkle","rose","magenta","gray","blue","purple","pink","yellow","green","red","orange","categoryText","StyledCategoryLabel","VisibleContent","HiddenLabel","CategoryLabel","accessibleLabel","toLabelSize","CategoryBadge","chip","$selected","$clickable","$disabled","interactiveStates","sizeStyles","StyledChip","IconContainer","CloseButton","closeButton","Chip","ariaDescribedBy","isClickable","Boolean","normalizedVariant","content","handleKeyDown","event","preventDefault","LegacyChip","newVariant","InputChip","onDismiss","isDismissible","handleDismiss","stopPropagation","handleCloseKeyDown","closeButtonLabel","type","FilterChip","BooleanChip","StyledSuggestionChip","SuggestionChip","StyledContainer","Container","PictureWrapper","clickableImage","press","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","progressBar","ProgressBarFill","standard","min","$value","ProgressBar","ariaLabelledBy","labelledBy","separatorTokens","StyledDivider","$orientation","borderProperty","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","showIcon","liveRegion","statusConfig","displayLabel","StatusBadge","StatusLabel","StyledTag","Tag","tagSize","labels","suggested","removal","StyledAILabel","StyledIcon","AILabel","kind","labelSize","StyledBalanceSection","StyledTrendSection","StyledStackWrapper","StyledHeaderWrapper","accountCard","header","trendToIcon","up","down","trendToColor","AccountCard","accountName","balance","accountNumber","trend","trendValue","action","secondaryAction","trendIcon","trendColor","ListSpacingContext","createContext","StyledListItem","li","touchTarget","$interactive","$destructive","StyledItemContent","$spacing","StyledTextContent","StyledIconContainer","StyledRightContent","StyledChevronIcon","$expanded","StyledExpandedContent","listItem","expandedIndent","compact","comfortable","ListItem","expandable","expanded","onToggle","destructive","spacingProp","customRole","ariaSelected","id","customTabIndex","customOnKeyDown","listSpacing","useContext","isInteractive","contentRole","ariaDisabled","ariaCurrent","Provider","EXIT_DURATION_MS","parseInt","tokenValues","usePresence","isOpen","exitMs","isMounted","setIsMounted","useEffect","timer","setTimeout","clearTimeout","isPresent","isExiting","useInert","ref","isInert","node","current","setAttribute","removeAttribute","slideUp","fadeIn","StyledOverlay","layer","modal","$isExiting","StyledActionSheet","slow","StyledHeader","StyledHeaderContent","StyledCloseButton","StyledActionsList","ul","ActionSheet","onClose","description","actions","closeOnOverlayClick","closeOnEscape","showCloseButton","sheetRef","useRef","previousActiveElement","document","activeElement","focusableElements","querySelectorAll","firstElement","lastElement","length","shiftKey","addEventListener","frame","requestAnimationFrame","firstFocusable","querySelector","originalOverflow","cancelAnimationFrame","removeEventListener","handleOverlayClick","currentTarget","handleActionClick","onSelect","destructiveIndex","findIndex","hasDestructive","createPortal","_Fragment","index","React","Fragment","detectSpeechRecognitionConstructor","targetWindow","candidateWindow","SpeechRecognition","webkitSpeechRecognition","normalizeTranscript","normalizeMessage","mapSpeechErrorCode","defaultVoiceErrorMessage","code","textDrivenState","hasText","agentInputStateTransition","currentState","DEFAULT_LISTENING_MESSAGE","DEFAULT_PROCESSING_MESSAGE","COUNTER_THRESHOLD","useIsomorphicLayoutEffect","useLayoutEffect","rotateRing","$docked","sticky","ControlsRow","InputShell","borderWidth","borderColor","Input","textarea","placeholder","InputActions","CircularActionIconButton","InputWrapper","MicButtonWrapper","ringMask","MicListeningRing","thick","$reducedMotion","MAX_SUGGESTIONS","regionEnter","templateObject_14","distance","regionFadeIn","regionFadeThenCollapse","templateObject_16","regionFadeOut","templateObject_17","RegionItem","$exiting","$reducedExit","RegionItemContent","ReviewBar","ReviewActions","SuggestionList","StatusRow","templateObject_26","StatusText","StatusAnnouncement","StatusEnd","VisuallyHidden","MeterContainer","templateObject_31","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","useId","statusId","counterId","currentValue","currentValueRef","messageLength","isOverLimit","effectiveSubmitting","effectiveState","isListening","hasVoice","updateMachineState","useCallback","previousState","updateValue","nextValue","clearNoSpeechTimeout","stopMeter","__awaiter","getTracks","forEach","stop","close","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","Date","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","options","clear","_w","shownReview","setShownReview","_x","lastReviewAction","setLastReviewAction","openProposalId","_y","announcedProposalId","setAnnouncedProposalId","_z","replacementCount","setReplacementCount","cappedSuggestions","useMemo","showSuggestions","_0","shownSuggestions","setShownSuggestions","suggestionCount","reviewAnnouncement","summary","onReviewDiscard","onDiscard","onReviewUndo","onUndo","onPickSuggestion","mediaQuery","matchMedia","sync","matches","displayedValue","filter","lastFieldWidthRef","resizeField","field","clientWidth","scrollX","scrollY","scrollHeight","scrollTo","clientHeight","ResizeObserver","observer","observe","disconnect","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","$inline","severity","$appearance","appearance","StyledContent","StyledTitle","StyledMessage","StyledActions","StyledDismissSlot","$lineHeight","StyledDismissButton","Alert","dismissible","inline","ariaLive","phase","setPhase","setReducedExit","exitStyle","setExitStyle","alertRef","onDismissRef","getComputedStyle","paddingTop","paddingBottom","boxSizing","offsetHeight","parseFloat","borderTopWidth","borderBottomWidth","call","forwarded","handleAnimationEnd","onAnimationEnd","pseudoElement","includes","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","row","$labelPosition","StyledCheckboxLabel","StyledFieldContainer","StyledHelperText","$error","colorError","Checkbox","checked","indeterminate","labelPosition","providedId","ariaDescribedby","generatedId","helperTextId","errorId","describedBy","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","floating","menu","DropdownOption","$isSelected","$isFocused","Dropdown","setIsOpen","focusedIndex","setFocusedIndex","dropdownRef","dropdownId","selectedOption","find","option","hasError","helperId","handleClickOutside","contains","trigger","newIndex","handleOptionClick","handleTriggerClick","selectedIndex","optionId","marginBottom","StyledList","$dividers","List","dividers","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","String","handleIncrement","inputElement","numValue","newValue","syntheticEvent","handleDecrement","handleChange","inputValue","test","parsedValue","isIncrementDisabled","isDecrementDisabled","ariaDescribedByIds","inputMode","PageTitleStyled","$hasBackButton","PageTitle","hasBackButton","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","items","s","push","data","r","handleInputChange","handleFocus","onFocus","handleBlur","onBlur","handleSuggestionClick","handleClear","scrollIntoView","block","showClearButton","hasItems","isString","slideInRight","slideInLeft","slideInTop","slideInBottom","StyledSheet","isDrawer","margin","StyledSheetContent","Sheet","StyledSliderContainer","StyledSliderTrackContainer","StyledTrack","StyledTrackFill","StyledThumb","slider","thumb","pointerTarget","$range","$active","StyledValueLabel","StyledMinMaxLabels","Slider","controlledValue","controlledRangeValue","rangeValue","defaultRangeValue","onRangeChange","showValueLabel","trackRef","activeThumb","setActiveThumb","endDragRef","isRange","internalRangeValue","setInternalRangeValue","currentRangeValue","clampValue","clamped","stepped","round","positionToValue","clientX","rect","getBoundingClientRect","percent","rawValue","valueToPercent","handleSingleChange","clampedValue","handleRangeChange","newMin","newMax","clampedMin","clampedMax","orderedMin","orderedMax","handleTrackClick","closest","minVal","maxVal","distToMin","distToMax","handleThumbPointerDown","pointerType","pointerId","setPointerCapture","handlePointerMove","endDrag","handlePointerEnd","valueChange","singlePercent","minPercent","maxPercent","onPointerDown","StyledTabList","tabBar","scrollbar","StyledTab","$isActive","StyledBadge","TabBar","tabs","activeTab","onTabChange","tabRefs","tab","handleTabClick","el","TextField","transactionListItem","StyledAvatarSection","StyledMainContent","StyledTopRow","StyledMerchantSection","StyledBottomRow","StyledMetadata","StyledIconIndicator","StyledTruncatedText","categoryConfig","shopping","dining","transport","entertainment","bills","other","TransactionListItem","merchant","merchantLogo","hasReceipt","hasNote","amountVariant","categoryData","gapSpacing","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","$gapLg","$gapXl","$gapXSm","$gapXMd","$gapXLg","$gapXXl","$gapYSm","$gapYMd","$gapYLg","$gapYXl","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]}