@common-origin/design-system 2.15.0 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +1 -1
  2. package/dist/client.esm.js +949 -649
  3. package/dist/client.esm.js.map +1 -1
  4. package/dist/client.js +951 -647
  5. package/dist/client.js.map +1 -1
  6. package/dist/components/atoms/Button/Button.d.ts +13 -1
  7. package/dist/components/atoms/CategoryBadge/CategoryBadge.d.ts +12 -52
  8. package/dist/components/atoms/CategoryBadge/index.d.ts +1 -1
  9. package/dist/components/atoms/CategoryLabel/CategoryLabel.d.ts +69 -0
  10. package/dist/components/atoms/CategoryLabel/index.d.ts +2 -0
  11. package/dist/components/atoms/Chip/BooleanChip.d.ts +6 -1
  12. package/dist/components/atoms/Chip/Chip.d.ts +17 -12
  13. package/dist/components/atoms/Chip/FilterChip.d.ts +10 -24
  14. package/dist/components/atoms/Chip/InputChip.d.ts +27 -0
  15. package/dist/components/atoms/Chip/index.d.ts +1 -0
  16. package/dist/components/atoms/Chip/shared/types.d.ts +15 -1
  17. package/dist/components/atoms/Chip/shared/utils.d.ts +1 -85
  18. package/dist/components/atoms/DateFormatter/DateFormatter.d.ts +11 -1
  19. package/dist/components/atoms/Icon/Icon.d.ts +11 -0
  20. package/dist/components/atoms/StatusBadge/StatusBadge.d.ts +9 -55
  21. package/dist/components/atoms/StatusBadge/index.d.ts +1 -1
  22. package/dist/components/atoms/StatusLabel/StatusLabel.d.ts +17 -0
  23. package/dist/components/atoms/StatusLabel/StatusLabelBase.d.ts +49 -0
  24. package/dist/components/atoms/StatusLabel/index.d.ts +2 -0
  25. package/dist/components/atoms/Tag/Tag.d.ts +5 -0
  26. package/dist/components/atoms/index.d.ts +2 -0
  27. package/dist/components/molecules/Alert/Alert.d.ts +15 -2
  28. package/dist/components/molecules/DateGroup/DateGroup.d.ts +4 -1
  29. package/dist/components/molecules/InlineAlert/InlineAlert.d.ts +54 -0
  30. package/dist/components/molecules/InlineAlert/index.d.ts +2 -0
  31. package/dist/components/molecules/List/List.d.ts +3 -2
  32. package/dist/components/molecules/List/ListContext.d.ts +6 -0
  33. package/dist/components/molecules/List/ListItem.d.ts +5 -4
  34. package/dist/components/molecules/Modal/Modal.d.ts +6 -2
  35. package/dist/components/molecules/TabBar/TabBar.d.ts +8 -5
  36. package/dist/components/molecules/index.d.ts +1 -0
  37. package/dist/data.esm.js +89 -11
  38. package/dist/data.esm.js.map +1 -1
  39. package/dist/data.js +89 -11
  40. package/dist/data.js.map +1 -1
  41. package/dist/index.esm.js +1 -1
  42. package/dist/index.js +4 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/styles/tokens.json +89 -11
  45. package/dist/tokens/index.esm.js +89 -11
  46. package/dist/tokens/index.esm.js.map +1 -1
  47. package/dist/tokens/index.js +89 -11
  48. package/dist/tokens/index.js.map +1 -1
  49. package/dist/tokens/types/tokens.d.ts +81 -3
  50. package/dist/tokens.css +769 -0
  51. package/dist/tokens.css.d.ts +4 -0
  52. package/dist/types/tokens.d.ts +81 -3
  53. package/package.json +18 -6
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":["../node_modules/tslib/tslib.es6.js","../src/components/atoms/Avatar/Avatar.tsx","../src/lib/styleUtils.ts","../src/components/atoms/Typography/Typography.tsx","../src/components/atoms/Badge/Badge.tsx","../src/components/atoms/Box/Box.tsx","../src/components/atoms/Icon/Icon.tsx","../src/components/atoms/Button/Button.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/FilterChip.tsx","../src/components/atoms/Chip/BooleanChip.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/components/atoms/StatusBadge/StatusBadge.tsx","../src/components/atoms/Tag/Tag.tsx","../src/components/molecules/AccountCard/AccountCard.tsx","../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/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","import React, { useState } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/styles/tokens.json'\n\n// Destructure tokens\nconst { semantic } = tokens\nconst { initials } = tokens.component.avatar\nconst { color, size, border } = semantic\nconst { radius } = border\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.circle};\n background-color: ${color.background.surface};\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.circle};\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 '../styles/tokens.json'\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// 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.\nexport const exitAnimation = css`, ${fadeOut} ${tokens.semantic.motion.duration.fast} ${tokens.semantic.motion.easing.easeOut} 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","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/styles/tokens.json'\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: ${typography.button1};`,\n button2: `font: ${typography.button2};`,\n button3: `font: ${typography.button3};`,\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.emphasis,\n subdued: color.text.subdued,\n inverse: color.text.inverse,\n disabled: color.text.disabled,\n interactive: color.text.interactive,\n error: color.text.error,\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 { reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\nimport tokens from '@/styles/tokens.json'\nimport { Typography } from '../Typography'\n\nconst { semantic } = tokens\nconst { color, border } = semantic\nconst { radius } = border\nconst { dot, count, ring } = tokens.component.badge\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 /** Visual variant of the badge */\n variant?: 'default' | 'primary' | 'error' | 'warning' | 'success'\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 ${count.paddingX}`};\n border-radius: ${radius.circle};\n line-height: ${count.lineHeight};\n white-space: nowrap;\n box-shadow: 0 0 0 ${ring.width} ${color.background.default};\n animation: ${scaleIn} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeOut};\n\n ${reducedMotion} {\n animation: none;\n }\n \n ${props => {\n switch (props.$variant) {\n case 'primary':\n return `\n background-color: ${color.background.interactive};\n color: ${color.text.inverse};\n `\n case 'error':\n return `\n background-color: ${color.background.error};\n color: ${color.text.inverse};\n `\n case 'warning':\n return `\n background-color: ${color.background.warning};\n color: ${color.text.inverse};\n `\n case 'success':\n return `\n background-color: ${color.background.success};\n color: ${color.text.inverse};\n `\n default:\n return `\n background-color: ${color.background.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 React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../styles/tokens.json'\nimport type { Tokens } from '../../../types/tokens'\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: ${tokens.semantic.spacing.layout[props.$gap]};`}\n \n // Margin\n ${props => props.$m && css`margin: ${tokens.semantic.spacing.layout[props.$m]};`}\n ${props => props.$mt && css`margin-top: ${tokens.semantic.spacing.layout[props.$mt]};`}\n ${props => props.$mr && css`margin-right: ${tokens.semantic.spacing.layout[props.$mr]};`}\n ${props => props.$mb && css`margin-bottom: ${tokens.semantic.spacing.layout[props.$mb]};`}\n ${props => props.$ml && css`margin-left: ${tokens.semantic.spacing.layout[props.$ml]};`}\n ${props => props.$mx && css`\n margin-left: ${tokens.semantic.spacing.layout[props.$mx]};\n margin-right: ${tokens.semantic.spacing.layout[props.$mx]};\n `}\n ${props => props.$my && css`\n margin-top: ${tokens.semantic.spacing.layout[props.$my]};\n margin-bottom: ${tokens.semantic.spacing.layout[props.$my]};\n `}\n \n // Padding\n ${props => props.$p && css`padding: ${tokens.semantic.spacing.layout[props.$p]};`}\n ${props => props.$pt && css`padding-top: ${tokens.semantic.spacing.layout[props.$pt]};`}\n ${props => props.$pr && css`padding-right: ${tokens.semantic.spacing.layout[props.$pr]};`}\n ${props => props.$pb && css`padding-bottom: ${tokens.semantic.spacing.layout[props.$pb]};`}\n ${props => props.$pl && css`padding-left: ${tokens.semantic.spacing.layout[props.$pl]};`}\n ${props => props.$px && css`\n padding-left: ${tokens.semantic.spacing.layout[props.$px]};\n padding-right: ${tokens.semantic.spacing.layout[props.$px]};\n `}\n ${props => props.$py && css`\n padding-top: ${tokens.semantic.spacing.layout[props.$py]};\n padding-bottom: ${tokens.semantic.spacing.layout[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: ${tokens.semantic.border.radius[props.$borderRadius]};`}\n ${props => props.$border && css`border: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border[props.$border]};`}\n ${props => props.$borderTop && css`border-top: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border[props.$borderTop]};`}\n ${props => props.$borderRight && css`border-right: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border[props.$borderRight]};`}\n ${props => props.$borderBottom && css`border-bottom: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border[props.$borderBottom]};`}\n ${props => props.$borderLeft && css`border-left: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border[props.$borderLeft]};`}\n \n // Background & Color\n ${props => props.$bg && css`background-color: ${tokens.semantic.color.background[props.$bg]};`}\n ${props => props.$color && css`color: ${tokens.semantic.color.text[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 &:active {\n transform: translateY(0);\n }\n \n &:focus-visible {\n outline: ${tokens.semantic.border.width.thick} solid ${tokens.semantic.color.border.interactive};\n outline-offset: ${tokens.semantic.border.focusOffset};\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 '@/styles/tokens.json'\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 '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.emphasis\n case 'subdued':\n return tokens.semantic.color.icon.subdued\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.interactive\n case 'error':\n return tokens.semantic.color.icon.error\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 'data-testid': dataTestId\n}): ReactElement => {\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 role=\"img\"\n aria-label={iconData.name}\n >\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 '@/styles/tokens.json'\nimport { Icon, type IconName } from '../Icon'\n\nconst { component: { button }, semantic } = tokens\n\n// Base props shared between button and link\nexport interface BaseButtonProps {\n variant?: 'primary' | 'secondary' | 'naked' | 'emphasis' | 'danger'\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: 'primary' | 'secondary' | 'naked' | 'emphasis' | 'danger'\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.spacing.layout.xs};\n height: max-content;\n cursor: pointer;\n border: none;\n text-decoration: none;\n transition: ${semantic.motion.hover};\n white-space: nowrap;\n user-select: none;\n \n &:focus {\n outline: ${button.focus.outline};\n outline-offset: ${button.focus.outlineOffset};\n }\n\n &:disabled {\n cursor: not-allowed;\n }\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 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 using component tokens\nconst getSizeStyles = ({ $size }: StyledButtonProps) => {\n switch ($size) {\n case 'small':\n return `\n font: ${button.sizes.small.font};\n padding: ${button.sizes.small.padding};\n `\n case 'medium':\n return `\n font: ${button.sizes.medium.font};\n padding: ${button.sizes.medium.padding};\n `\n case 'large':\n return `\n font: ${button.sizes.large.font};\n padding: ${button.sizes.large.padding};\n `\n default:\n return `\n font: ${button.sizes.large.font};\n padding: ${button.sizes.large.padding};\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 tokens from '@/styles/tokens.json'\n\nconst { semantic } = tokens\nconst { color, border, spacing } = semantic\nconst { label } = tokens.component.badge\nconst { category } = color\nconst { radius } = border\nconst { layout } = spacing\n\n/**\n * Category color options for CategoryBadge\n */\nexport type CategoryColor = \n | 'blue' \n | 'purple' \n | 'pink' \n | 'yellow' \n | 'green' \n | 'red' \n | 'orange' \n | 'gray'\n\n/**\n * Visual variant options for CategoryBadge\n */\nexport type CategoryVariant = 'filled' | 'outlined' | 'minimal'\n\n/**\n * Size options for CategoryBadge\n */\nexport type CategorySize = 'small' | 'medium'\n\n/**\n * Props for the CategoryBadge component\n */\nexport interface CategoryBadgeProps {\n /**\n * The category text to display\n */\n children: ReactNode\n \n /**\n * Color scheme for the badge\n * @default 'blue'\n */\n color?: CategoryColor\n \n /**\n * Visual variant of the badge\n * @default 'filled'\n */\n variant?: CategoryVariant\n \n /**\n * Size of the badge\n * @default 'medium'\n */\n size?: CategorySize\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 for the badge\n */\n 'aria-label'?: string\n}\n\ninterface StyledBadgeProps {\n $color: CategoryColor\n $variant: CategoryVariant\n $size: CategorySize\n}\n\nconst StyledCategoryBadge = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledBadgeProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: ${radius.circle};\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 }) => $size === 'small' ? '24px' : '32px'};\n padding: ${({ $size }) => $size === 'small' \n ? `${layout.xs} ${layout.sm}` \n : `${layout.sm} ${layout.md}`\n };\n font: ${({ $size }) => $size === 'small' ? label.typography.small : label.typography.medium};\n /* After the font shorthand, which would otherwise reset it */\n font-weight: ${label.fontWeight};\n gap: ${layout.xs};\n \n /* Variant + Color styles */\n background-color: ${({ $color, $variant }) => {\n if ($variant === 'filled') {\n return category[`${$color}-emphasis` as keyof typeof category]\n }\n if ($variant === 'outlined') {\n return 'transparent'\n }\n // minimal\n return category[`${$color}-subtle` as keyof typeof category]\n }};\n \n color: ${({ $color, $variant }) => {\n if ($variant === 'filled') {\n return color.text.inverse\n }\n return category[$color as keyof typeof category]\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/**\n * CategoryBadge component for displaying transaction categories\n * \n * A static label for categorizing content with support for 8 color options,\n * 3 visual variants, and optional icons. Perfect for categorizing \n * financial transactions or content types.\n * \n * @example\n * ```tsx\n * <CategoryBadge color=\"orange\" icon=\"restaurant\">\n * Food & Dining\n * </CategoryBadge>\n * \n * <CategoryBadge color=\"blue\" variant=\"outlined\" size=\"small\">\n * Travel\n * </CategoryBadge>\n * ```\n */\nexport const CategoryBadge: React.FC<CategoryBadgeProps> = ({\n children,\n color = 'blue',\n variant = 'filled',\n size = 'medium',\n icon,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel\n}) => {\n const iconSize = size === 'small' ? 'xs' : 'sm'\n \n return (\n <StyledCategoryBadge\n $color={color}\n $variant={variant}\n $size={size}\n aria-label={ariaLabel}\n data-testid={dataTestId}\n >\n {icon && (\n <Icon \n name={icon} \n size={iconSize}\n iconColor={variant === 'filled' ? 'inverse' : 'inherit'}\n aria-hidden=\"true\"\n />\n )}\n {children}\n </StyledCategoryBadge>\n )\n}\n\nCategoryBadge.displayName = 'CategoryBadge'\n","import tokens from '../../../../styles/tokens.json'\nimport { ChipVariant, BaseChipProps } from './types'\n\nconst { component: { chip } } = tokens\n\ninterface StyledChipProps {\n $variant: ChipVariant\n $size: BaseChipProps['size']\n $disabled?: boolean\n $clickable?: boolean\n $selected?: boolean\n}\n\n// Selected-chip hover and active colours have no token yet: they wait on #21 (selected states).\n// eslint-disable-next-line no-restricted-syntax\nconst SELECTED_HOVER = '#CAE8FF'\n// eslint-disable-next-line no-restricted-syntax\nconst SELECTED_ACTIVE = '#B5DEFF'\n\n// Helper function to get variant styles matching Button's approach\nexport const getVariantStyles = ({ $variant, $selected, $clickable, $disabled }: StyledChipProps) => {\n // Boolean chips with selected state get special background\n if ($selected) {\n return `\n background-color: ${tokens.semantic.color.background['interactive-subtle']};\n color: ${chip.default.textColor};\n \n &:hover {\n background-color: ${$disabled ? tokens.semantic.color.background['interactive-subtle'] : ($clickable ? SELECTED_HOVER : tokens.semantic.color.background['interactive-subtle'])};\n }\n \n &:active {\n background-color: ${$disabled ? tokens.semantic.color.background['interactive-subtle'] : ($clickable ? SELECTED_ACTIVE : tokens.semantic.color.background['interactive-subtle'])};\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// Helper function to get size styles matching Button's approach\nexport const getSizeStyles = ({ $size }: StyledChipProps) => {\n switch ($size) {\n case 'small':\n return `\n font: ${chip.sizes.small.font};\n padding: ${chip.sizes.small.padding};\n `\n case 'medium':\n default:\n return `\n font: ${chip.sizes.medium.font};\n padding: ${chip.sizes.medium.padding};\n `\n }\n}\n\n// Export chip tokens for reuse\nexport { chip as chipTokens }\n","import styled from 'styled-components'\nimport tokens from '../../../../styles/tokens.json'\nimport { InternalStyledProps } from './types'\nimport { getVariantStyles, getSizeStyles, chipTokens } from './utils'\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: ${chipTokens.default.borderRadius};\n box-sizing: border-box;\n user-select: none;\n white-space: nowrap;\n transition: ${tokens.semantic.motion.hover};\n cursor: ${props => props.$disabled ? 'not-allowed' : (props.$clickable ? 'pointer' : 'default')};\n \n ${getVariantStyles}\n ${getSizeStyles}\n \n &:focus-visible {\n outline: ${chipTokens.focus.outline};\n outline-offset: ${chipTokens.focus.outlineOffset};\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.spacing.layout.xs};\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.spacing.layout.sm};\n background: transparent;\n border: none;\n width: ${chipTokens.closeButton.size};\n height: ${chipTokens.closeButton.size};\n padding: ${tokens.semantic.spacing.layout.none};\n border-radius: ${tokens.semantic.border.radius.xs};\n cursor: ${props => props.$disabled ? 'not-allowed' : 'pointer'};\n color: inherit;\n transition: ${tokens.semantic.motion.hover};\n \n &:hover:not(:disabled) {\n background-color: ${tokens.semantic.color.background['hover-overlay']};\n }\n \n &:active:not(:disabled) {\n background-color: ${tokens.semantic.color.background['active-overlay']};\n }\n \n &:disabled {\n color: ${tokens.semantic.color.text.disabled};\n }\n \n &:focus-visible {\n outline: ${chipTokens.focus.outline};\n outline-offset: ${chipTokens.focus.outlineOffset};\n border-radius: ${chipTokens.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 /** Visual style variant */\n variant?: ChipVariant | LegacyVariant\n /** Click handler for interactive chips */\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 - Compact element for displaying tags, categories, and labels\n * \n * Use this component for static display chips or simple interactive chips.\n * For specialized filtering patterns, use:\n * - FilterChip: Dismissible chips for showing applied filters\n * - BooleanChip: Toggleable chips for quick filter controls\n * \n * Variants:\n * - default: Standard gray background\n * - emphasis: High-contrast dark background\n * - subtle: Light background for secondary info\n * - interactive: Blue background with hover states\n */\nexport const Chip: React.FC<ChipProps> = ({\n children,\n variant = 'default',\n size = 'medium',\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 $size={size}\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 FilterChipProps 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 * FilterChip - Chip for displaying filters with selected state and optional dismissal\n * \n * Use this component to show filters that can be selected/deselected.\n * When selected, displays a checkmark and light blue background.\n * Optionally dismissible when onDismiss is provided.\n * \n * Features:\n * - Shows checkmark icon when selected\n * - Light blue background when selected\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 * - Uses subtle/interactive background styling based on selected state\n * - Announces as \"status\" to screen readers\n */\nexport const FilterChip: React.FC<FilterChipProps> = ({\n children,\n selected = false,\n onDismiss,\n size = 'medium',\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 $size={size}\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\" />\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\" />\n </CloseButton>\n )}\n </StyledChip>\n )\n}\n","import React from 'react'\nimport { Icon } from '../Icon'\nimport { BaseChipProps } from './shared/types'\nimport { StyledChip, IconContainer } from './shared/ChipBase'\n\nexport interface 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 * - Visual background change when selected\n */\nexport const BooleanChip: React.FC<BooleanChipProps> = ({\n children,\n selected,\n onClick,\n size = 'medium',\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 $size={size}\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\" />\n </IconContainer>\n )}\n \n {children}\n </StyledChip>\n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { breakpoints, media } from '../../../lib/styleUtils'\nimport tokens from '@/styles/tokens.json'\n\nconst { semantic: { spacing } } = 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: ${spacing.layout['2xl']};\n padding-right: ${spacing.layout['2xl']};\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 from 'styled-components'\nimport tokens from '@/styles/tokens.json'\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\nconst ImageLink = styled.a`\n display: block;\n cursor: pointer;\n transition: opacity ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeInOut};\n \n &:hover {\n opacity: 0.8;\n }\n`\n\nconst ImageButton = styled.button`\n border: none;\n background: none;\n padding: 0;\n cursor: pointer;\n display: block;\n width: 100%;\n transition: opacity ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeInOut};\n \n &:hover {\n opacity: 0.8;\n }\n`\n\nconst StyledImage = styled.img`\n width: 100%;\n height: auto;\n border-radius: ${tokens.semantic.border.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 '@/styles/tokens.json'\n\nconst { semantic: { typography, color } } = tokens\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 /** Date formatting mode: 'absolute' uses formatString, 'relative' shows \"Today\"/\"Yesterday\", 'smart' combines both */\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.subdued};\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':\n // Always use relative labels (Today/Yesterday) or fall back to day name\n displayText = formatDateSmart(date, formatString)\n break\n case 'smart':\n // Smart mode: relative for recent, absolute for older\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 '@/styles/tokens.json'\n\nconst { semantic: { motion }, component: { iconButton, button } } = tokens\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\nconst IconButtonStyled = styled.button.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledButtonProps>`\n background-color: ${({ $variant }) => {\n switch ($variant) {\n case 'primary':\n return iconButton.primary.backgroundColor\n case 'secondary':\n return iconButton.variants.secondary.backgroundColor\n case 'naked':\n return iconButton.variants.naked.backgroundColor\n default:\n return iconButton.primary.backgroundColor\n }\n }};\n color: ${({ $variant }) => {\n switch ($variant) {\n case 'primary':\n return button.primary.textColor\n case 'secondary':\n return button.variants.secondary.textColor\n case 'naked':\n return button.variants.naked.textColor\n default:\n return button.primary.textColor\n }\n }};\n border: none;\n border-radius: ${iconButton.primary.borderRadius};\n transition: ${motion.transition.normal};\n box-sizing: border-box;\n display: ${iconButton.primary.display};\n justify-content: ${iconButton.primary.justifyContent};\n align-items: ${iconButton.primary.alignItems};\n height: max-content;\n cursor: pointer;\n position: relative;\n\n /* Size-specific dimensions from component tokens */\n min-width: ${({ $size }) => iconButton.sizes[$size].minWidth};\n min-height: ${({ $size }) => iconButton.sizes[$size].minHeight};\n padding: ${({ $size }) => iconButton.sizes[$size].padding};\n\n &:hover:not(:disabled) {\n background-color: ${({ $variant }) => {\n switch ($variant) {\n case 'primary':\n return iconButton.hover.backgroundColor\n case 'secondary':\n return iconButton.variants.secondary.hover.backgroundColor\n case 'naked':\n return iconButton.variants.naked.hover.backgroundColor\n default:\n return iconButton.hover.backgroundColor\n }\n }};\n }\n\n &:active:not(:disabled) {\n background-color: ${iconButton.active.backgroundColor};\n }\n\n &:focus {\n outline: ${iconButton.focus.outline};\n outline-offset: ${iconButton.focus.outlineOffset};\n }\n\n &:disabled {\n background-color: ${iconButton.disabled.backgroundColor};\n color: ${({ $variant }) => {\n switch ($variant) {\n case 'primary':\n return button.disabled.textColor\n case 'secondary':\n return button.variants.secondary.disabled.textColor\n case 'naked':\n return button.variants.naked.disabled.textColor\n default:\n return button.disabled.textColor\n }\n }};\n cursor: not-allowed;\n }\n\n /* High contrast mode support */\n @media (prefers-contrast: high) {\n border: ${tokens.semantic.border.width.thin} solid;\n }\n\n /* Reduced motion support */\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\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 { Icon, type IconProps } from '../Icon'\nimport tokens from '@/styles/tokens.json'\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 gap: 0.25rem;\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// Map size to Icon size for consistent visual alignment\nconst sizeToIconSize: Record<MoneyDisplaySize, IconProps['size']> = {\n small: 'xs',\n medium: 'sm',\n large: 'md',\n xlarge: 'lg'\n}\n\n/**\n * Generates aria-label with spelled out amount\n */\nconst generateAriaLabel = (amount: number, currency: string, locale: string): string => {\n const formatter = new Intl.NumberFormat(locale, {\n style: 'currency',\n currency: currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n \n // Get parts to spell out the amount\n const parts = formatter.formatToParts(Math.abs(amount))\n const integerPart = parts.find(p => p.type === 'integer')?.value || '0'\n const fractionPart = parts.find(p => p.type === 'fraction')?.value || '00'\n \n const sign = amount < 0 ? 'negative ' : ''\n return `${sign}${integerPart} dollars and ${fractionPart} cents`\n}\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 // Determine if we need to show a sign icon\n const showPositiveIcon = (showSign && amount > 0) || variant === 'positive'\n const showNegativeIcon = amount < 0 || variant === 'negative'\n \n // Generate accessibility label\n const ariaLabel = generateAriaLabel(amount, currency, locale)\n \n // Get typography variant and icon size\n const typographyVariant = sizeToTypographyVariant[size]\n const iconSize = sizeToIconSize[size]\n \n // Determine icon color based on variant\n const iconColor: IconProps['iconColor'] = \n variant === 'positive' || showPositiveIcon ? 'success' :\n variant === 'negative' || showNegativeIcon ? 'error' :\n variant === 'neutral' ? 'subdued' :\n 'default'\n \n // Amount always uses default color (except neutral which stays subdued)\n const amountColor: TypographyColor = variant === 'neutral' ? 'subdued' : 'default'\n \n return (\n <StyledWrapper \n $align={align} \n $weight={weight}\n aria-label={ariaLabel}\n data-testid={dataTestId}\n >\n {showPositiveIcon && !showNegativeIcon && (\n <Icon name=\"addRing\" size={iconSize} iconColor={iconColor} />\n )}\n {showNegativeIcon && (\n <Icon name=\"remove\" size={iconSize} iconColor={iconColor} />\n )}\n <Typography\n variant={typographyVariant}\n color={amountColor}\n as=\"span\"\n >\n {formattedAmount}\n </Typography>\n </StyledWrapper>\n )\n}\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../styles/tokens.json'\nimport { reducedMotion } from '../../../lib/styleUtils'\n\n// Destructure tokens\nconst { semantic } = tokens\nconst { color, border, motion, component } = { ...semantic, component: tokens.component }\nconst { radius } = border\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 /** Color variant for the progress bar */\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: ${color.background.disabled};\n border-radius: ${radius.xs};\n overflow: hidden;\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: ${motion.transition.normal};\n\n ${reducedMotion} {\n transition: none;\n }\n\n ${props => {\n let backgroundColor\n switch (props.$color) {\n case 'success':\n backgroundColor = color.background.success\n break\n case 'error':\n backgroundColor = color.background.error\n break\n case 'default':\n default:\n backgroundColor = color.background.interactive\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 '@/styles/tokens.json'\n\n// Destructure tokens for cleaner access\nconst { separator: separatorTokens } = tokens.component\nconst { separator: separatorSpacing } = tokens.semantic.spacing\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: ${separatorTokens.variants.minimal.margin};`\n }\n \n if ($orientation === 'vertical') {\n // Vertical orientation uses horizontal margins (left/right)\n switch ($size) {\n case 'small':\n return `margin: 0 ${separatorSpacing.sm};`\n case 'medium':\n return `margin: 0 ${separatorSpacing.md};`\n case 'xlarge':\n return `margin: 0 ${separatorSpacing.xl};`\n case 'large':\n default:\n return `margin: 0 ${separatorSpacing.lg};`\n }\n }\n \n // Horizontal orientation uses vertical margins (top/bottom)\n switch ($size) {\n case 'small':\n return `margin: ${separatorTokens.sizes.small.margin};`\n case 'medium':\n return `margin: ${separatorTokens.sizes.medium.margin};`\n case 'xlarge':\n return `margin: ${separatorTokens.sizes.xlarge.margin};`\n case 'large':\n default:\n return `margin: ${separatorTokens.sizes.large.margin};`\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 '@/styles/tokens.json'\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// Helper function to convert gap prop to CSS value\nconst getGapValue = (gap: StackGap): string => {\n // Get semantic layout spacing token\n const semanticSpacing = tokens.semantic.spacing.layout as Record<string, string>\n \n if (gap in semanticSpacing) {\n return semanticSpacing[gap as keyof typeof semanticSpacing]\n }\n \n // Fallback to medium layout spacing if token not found\n return tokens.semantic.spacing.layout.md\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","import React from 'react'\nimport styled, { keyframes } from 'styled-components'\nimport { Icon } from '../Icon/Icon'\nimport type { IconName } from '../../../types/icons'\nimport { reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\nimport tokens from '@/styles/tokens.json'\n\n// Destructure tokens for cleaner access\nconst { status: statusColors } = tokens.semantic.color\nconst { layout: spacing } = tokens.semantic.spacing\nconst { radius } = tokens.semantic.border\nconst { transition, duration, easing } = tokens.semantic.motion\nconst { label } = tokens.component.badge\n\n/**\n * Status type options for StatusBadge\n */\nexport type StatusType = \n | 'pending' \n | 'completed' \n | 'failed' \n | 'cancelled' \n | 'processing' \n | 'scheduled'\n\n/**\n * Size options for StatusBadge\n */\nexport type StatusSize = 'small' | 'medium'\n\n/**\n * Props for the StatusBadge component\n */\nexport interface StatusBadgeProps {\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 of the badge\n * @default 'medium'\n */\n size?: StatusSize\n \n /**\n * Whether to show the icon\n * @default true\n */\n showIcon?: boolean\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\n */\n 'aria-label'?: string\n}\n\ninterface StyledStatusBadgeProps {\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 const configs: Record<StatusType, { color: string; bgColor: string; icon: IconName; label: string }> = {\n pending: {\n color: statusColors.pending,\n bgColor: statusColors['pending-bg'],\n icon: 'refresh', // Fallback until 'clock' icon is added\n label: 'Pending'\n },\n completed: {\n color: statusColors.completed,\n bgColor: statusColors['completed-bg'],\n icon: 'check',\n label: 'Completed'\n },\n failed: {\n color: statusColors.failed,\n bgColor: statusColors['failed-bg'],\n icon: 'close',\n label: 'Failed'\n },\n cancelled: {\n color: statusColors.cancelled,\n bgColor: statusColors['cancelled-bg'],\n icon: 'cancel',\n label: 'Cancelled'\n },\n processing: {\n color: statusColors.processing,\n bgColor: statusColors['processing-bg'],\n icon: 'refresh',\n label: 'Processing'\n },\n scheduled: {\n color: statusColors.scheduled,\n bgColor: statusColors['scheduled-bg'],\n icon: 'bell', // Fallback until 'calendar' icon is added\n label: 'Scheduled'\n }\n }\n \n return configs[status]\n}\n\n// Size configuration\nconst sizeConfig = {\n small: {\n height: '20px',\n padding: `${spacing.xs} ${spacing.sm}`,\n font: label.typography.small,\n gap: spacing.xs,\n iconSize: 'xs' as const\n },\n medium: {\n height: '24px',\n padding: `${spacing.xs} ${spacing.sm}`,\n font: label.typography.medium,\n gap: spacing.xs,\n iconSize: 'sm' as const\n }\n}\n\nconst StyledStatusBadge = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledStatusBadgeProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: ${radius.circle};\n white-space: nowrap;\n user-select: none;\n animation: ${scaleIn} ${duration.normal} ${easing.easeOut};\n transition: ${transition.fast};\n\n /* transition.fast covers all properties, so a size change would animate the badge's dimensions */\n ${reducedMotion} {\n animation: none;\n transition: none;\n }\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/**\n * StatusBadge component for displaying transaction or task status\n * \n * Displays status with appropriate color, icon, and supports live updates for screen readers.\n * Maps to 6 common status types with semantic color tokens.\n * \n * @example\n * ```tsx\n * <StatusBadge status=\"completed\" />\n * \n * <StatusBadge \n * status=\"pending\" \n * label=\"Awaiting approval\"\n * size=\"small\" \n * />\n * \n * <StatusBadge \n * status=\"failed\" \n * showIcon={false}\n * liveRegion={true}\n * />\n * ```\n */\nexport const StatusBadge: React.FC<StatusBadgeProps> = ({\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 \n return (\n <StyledStatusBadge\n $status={status}\n $size={size}\n role=\"status\"\n aria-label={ariaLabel || `Status: ${displayLabel}`}\n aria-live={liveRegion ? 'polite' : undefined}\n aria-atomic={liveRegion ? 'true' : undefined}\n data-testid={dataTestId}\n >\n {showIcon && (\n <Icon \n name={statusConfig.icon} \n size={sizeStyles.iconSize}\n iconColor=\"inherit\"\n aria-hidden=\"true\"\n />\n )}\n {displayLabel}\n <ScreenReaderOnly>\n {status} status\n </ScreenReaderOnly>\n </StyledStatusBadge>\n )\n}\n\nStatusBadge.displayName = 'StatusBadge'\n","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/styles/tokens.json'\n\nconst { semantic } = tokens\nconst { color, spacing, border, size } = semantic\nconst { label } = tokens.component.badge\nconst { layout } = spacing\nconst { radius } = border\n\nexport interface TagProps {\n /**\n * Text content to display in the tag\n */\n children: React.ReactNode\n \n /**\n * Visual variant of the tag based on semantic meaning\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 * Test identifier for automated testing\n */\n 'data-testid'?: string\n}\n\ninterface StyledTagProps {\n $variant: TagProps['variant']\n $border: boolean\n}\n\nconst StyledTag = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledTagProps>`\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 max-height: ${size.icon.lg || '2rem'};\n \n /* Size - fixed to small */\n padding: ${layout.xs} ${layout.sm};\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.background['interactive-subtle']\n case 'success':\n return color.background['success-subtle']\n case 'warning':\n return color.background['warning-subtle']\n case 'error':\n return color.background['error-subtle']\n case 'emphasis':\n return color.background.emphasis\n default:\n return color.background.surface\n }\n }};\n \n color: ${({ $variant }) => {\n switch ($variant) {\n case 'interactive':\n return color.text.interactive\n case 'success':\n return color.text.success\n case 'warning':\n return color.text.warning\n case 'error':\n return color.text.error\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.interactive}`\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.error}`\n case 'emphasis':\n return `${semantic.border.width.thin} solid ${color.background.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 'data-testid': dataTestId,\n ...props\n}) => {\n return (\n <StyledTag\n $variant={variant}\n $border={border}\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 { Stack } from '../../atoms/Stack'\nimport { Box } from '../../atoms/Box'\nimport { type IconName } from '../../atoms/Icon'\nimport { Typography } from '../../atoms/Typography'\nimport { MoneyDisplay } from '../../atoms/MoneyDisplay'\nimport { Button } from '../../atoms/Button'\nimport { CategoryBadge, type CategoryColor } from '../../atoms/CategoryBadge'\nimport { Avatar } from '../../atoms/Avatar'\nimport tokens from '../../../styles/tokens.json'\n\n// Destructure tokens for cleaner access\nconst { semantic } = tokens\nconst { spacing } = semantic\nconst { layout } = spacing\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: ${layout.lg};\n`\n\nconst StyledTrendSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${layout.xs};\n`\n\nconst StyledActions = styled.div`\n display: flex;\n gap: ${layout.sm};\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: ${layout.none};\n\n & > span {\n margin-top: -${layout.xs};\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\nconst trendToColor: Record<TrendDirection, CategoryColor> = {\n up: 'green',\n down: 'red',\n neutral: 'blue'\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.normal} ${semantic.motion.easing.easeOut}`}\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 <StyledTrendSection aria-label={`Trend ${trend}`} role=\"img\">\n <CategoryBadge size=\"small\" icon={trendIcon} color={trendColor} variant=\"minimal\">{trendValue}</CategoryBadge>\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 React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/styles/tokens.json'\nimport { Icon } from '../../atoms/Icon'\nimport { Typography } from '../../atoms/Typography'\nimport { reducedMotion } from '../../../lib/styleUtils'\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 * Spacing variant from parent List\n * @default 'comfortable'\n */\n spacing?: 'compact' | 'comfortable'\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.error};\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.spacing.layout.md};\n padding: ${({ $spacing }) =>\n $spacing === 'compact'\n ? `${semantic.spacing.layout.sm} ${semantic.spacing.layout.md}`\n : `${semantic.spacing.layout.md} ${semantic.spacing.layout.lg}`};\n border-radius: ${semantic.border.radius.sm};\n background-color: ${({ $selected }) =>\n $selected ? semantic.color.background['interactive-subtle'] : 'transparent'};\n transition: background-color ${duration.fast} ${easing.easeOut};\n cursor: ${({ $interactive, $disabled }) => {\n if ($disabled) return 'not-allowed'\n if ($interactive) return 'pointer'\n return 'default'\n }};\n \n /* Interactive hover states */\n ${({ $interactive, $disabled, $selected }) => !$disabled && $interactive && `\n &:hover {\n background-color: ${\n $selected \n ? tokens.component.button.variants.secondary.backgroundColor\n : tokens.component.button.variants.secondary.backgroundColor\n };\n }\n \n &:active {\n background-color: ${tokens.component.button.variants.naked.backgroundColor};\n }\n `}\n \n /* Focus visible */\n &:focus-visible {\n outline: ${semantic.border.width.thick} solid ${semantic.color.border.interactive};\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.spacing.layout.xs};\n min-width: 0; /* Allow text truncation */\n`\n\nconst StyledRightContent = styled.div`\n display: flex;\n align-items: center;\n gap: ${semantic.spacing.layout.sm};\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.subdued};\n transition: transform ${duration.fast} ${easing.easeOut};\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.normal} ${easing.easeOut},\n padding ${duration.normal} ${easing.easeOut},\n opacity ${duration.normal} ${easing.easeOut},\n visibility ${duration.normal} ${easing.easeOut};\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.normal} ${easing.easeOut},\n visibility ${duration.normal} ${easing.easeOut};\n }\n \n ${({ $expanded, $spacing }) => $expanded && `\n padding: ${\n $spacing === 'compact'\n ? `${semantic.spacing.layout.sm} ${semantic.spacing.layout.md} ${semantic.spacing.layout.sm} ${tokens.component.listItem.expandedIndent.compact}`\n : `${semantic.spacing.layout.sm} ${semantic.spacing.layout.lg} ${semantic.spacing.layout.md} ${tokens.component.listItem.expandedIndent.comfortable}`\n };\n background-color: ${semantic.color.background['subtle']};\n border-radius: ${semantic.border.radius.sm};\n margin: 0 ${\n $spacing === 'compact' \n ? semantic.spacing.layout.md \n : semantic.spacing.layout.lg\n } ${\n $spacing === 'compact'\n ? semantic.spacing.layout.sm\n : semantic.spacing.layout.md\n };\n `}\n`\n\nexport const ListItem = ({\n primary,\n secondary,\n badge,\n icon,\n expandable = false,\n expanded = false,\n onToggle,\n interactive = false,\n onClick,\n disabled = false,\n selected = false,\n destructive = false,\n spacing = 'comfortable',\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 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 <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 )\n}\n\nListItem.displayName = 'ListItem'\n","import { useEffect, useState, type RefObject } from 'react'\nimport tokens from '../styles/tokens.json'\n\n// How long an exiting element stays mounted: the duration of `exitAnimation` in styleUtils.\nexport const EXIT_DURATION_MS = parseInt(tokens.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 '@/styles/tokens.json'\nimport { exitAnimation, reducedMotion } from '../../../lib/styleUtils'\nimport { useInert, usePresence } from '../../../lib/usePresence'\n\nconst { \n semantic: { \n color, \n border, \n spacing: { layout }, \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: ${color.background.overlay};\n z-index: ${tokens.semantic.zIndex.modal};\n animation: ${fadeIn} ${motion.duration.normal} ${motion.easing.easeOut}${({ $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: ${color.background.subtle};\n border-top-left-radius: ${border.radius.lg};\n border-top-right-radius: ${border.radius.lg};\n box-shadow: ${elevation.overlay};\n max-height: 90vh;\n overflow-y: auto;\n z-index: ${tokens.semantic.zIndex.modal};\n animation: ${slideUp} ${motion.duration.slow} ${motion.easing.easeOut}${({ $isExiting }) => $isExiting && exitAnimation};\n\n ${reducedMotion} {\n animation: ${fadeIn} ${motion.duration.slow} ${motion.easing.easeOut}${({ $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: ${layout.lg} ${layout.lg} ${layout.md};\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: ${layout.sm};\n border: none;\n background: transparent;\n color: ${color.icon.subdued};\n cursor: pointer;\n border-radius: ${border.radius.sm};\n transition: ${motion.hover};\n margin-left: ${layout.sm};\n \n &:hover {\n color: ${color.icon.default};\n background-color: ${color.background.surface};\n }\n \n &:focus-visible {\n outline: ${border.focus};\n outline-offset: ${layout.xs};\n }\n`\n\nconst StyledActionsList = styled.ul`\n padding: ${layout.sm} ${layout.md};\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\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 KeyboardEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useId,\n} from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport { IconButton } from '../../atoms/IconButton'\nimport { Typography } from '../../atoms/Typography'\nimport { visuallyHidden } from '../../../lib/styleUtils'\nimport tokens from '@/styles/tokens.json'\nimport {\n AgentInputSubmitSource,\n AgentInputVoiceError,\n AgentInputVoiceErrorCode,\n SpeechRecognitionLike,\n defaultVoiceErrorMessage,\n detectSpeechRecognitionConstructor,\n mapSpeechErrorCode,\n normalizeTranscript,\n} from './agentInputSpeech'\nimport { AgentInputMachineState, agentInputStateTransition } from './agentInputStateMachine'\n\nconst { semantic, component } = tokens\n\nconst DEFAULT_IDLE_HELPER = 'Ask about transactions, spending, or transfers'\nconst DEFAULT_LISTENING_MESSAGE = 'Listening… speak now'\nconst DEFAULT_PROCESSING_MESSAGE = 'Finishing voice input…'\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 onSubmit: (payload: SubmitPayload) => void | Promise<void>\n\n placeholder?: string\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 statusMessage?: string\n errorMessage?: string\n label?: string\n 'data-testid'?: string\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`\n display: flex;\n flex-direction: column;\n gap: ${semantic.spacing.layout.sm};\n width: 100%;\n`\n\nconst ControlsRow = styled.div`\n width: 100%;\n`\n\nconst InputShell = styled.div`\n display: flex;\n align-items: center;\n gap: ${semantic.spacing.layout.sm};\n width: 100%;\n padding: ${semantic.spacing.layout.xs} ${semantic.spacing.layout.sm} ${semantic.spacing.layout.xs} ${component.input.default.paddingX};\n background-color: ${component.input.default.backgroundColor};\n border: ${component.input.default.borderWidth} solid ${component.input.default.borderColor};\n border-radius: ${semantic.border.radius['3xl']};\n box-shadow: ${semantic.elevation.raised};\n transition: border-color ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}, outline ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut};\n\n &:focus-within {\n border-color: ${component.input.focus.borderColor};\n outline: ${component.input.focus.outline};\n outline-offset: ${component.input.focus.outlineOffset};\n }\n\n &[data-disabled='true'] {\n background-color: ${component.input.disabled.backgroundColor};\n border-color: ${component.input.disabled.borderColor};\n }\n`\n\nconst Input = styled.input`\n flex: 1;\n min-width: 0;\n min-height: ${semantic.spacing.layout['7xl']};\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: ${semantic.color.text.subdued};\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.spacing.layout.sm};\n`\n\nconst CircularActionIconButton = styled(IconButton)`\n border-radius: ${semantic.border.radius.circle};\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.border.radius.circle};\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(-${semantic.spacing.layout.xs} - ${component.iconButton.focus.outlineOffset});\n border-radius: ${semantic.border.radius.circle};\n pointer-events: none;\n z-index: 0;\n background: conic-gradient(\n from 0deg,\n ${semantic.color.background['interactive-subtle']} 0deg,\n ${semantic.color.background.interactive} 110deg,\n ${semantic.color.background['interactive-hover']} 210deg,\n ${semantic.color.background.interactive} 300deg,\n ${semantic.color.background['interactive-subtle']} 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\nconst StatusRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${semantic.spacing.layout.md};\n min-height: ${semantic.spacing.layout['2xl']};\n`\n\nconst StatusText = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isError: boolean }>`\n padding-left: ${semantic.spacing.layout.xl};\n`\n\nconst StatusAnnouncement = styled.div``\n\nconst MeterContainer = styled.div`\n display: inline-flex;\n align-items: flex-end;\n gap: ${semantic.spacing.layout.xs};\n height: ${semantic.spacing.layout.lg};\n`\n\nconst MeterBar = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $height: number }>`\n width: ${semantic.spacing.layout.xs};\n border-radius: ${semantic.border.radius.xs};\n background-color: ${semantic.color.background.interactive};\n height: ${({ $height }) => `${$height * 100}%`};\n transition: height ${semantic.motion.duration.fast} ${semantic.motion.easing.easeOut};\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\nexport const AgentInput = ({\n value,\n defaultValue = '',\n onChange,\n onSubmit,\n placeholder = 'Ask a question',\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 statusMessage,\n errorMessage,\n label = 'Agent input',\n 'data-testid': dataTestId,\n}: AgentInputProps) => {\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 inputId = useId()\n const statusId = `${inputId}-status`\n\n const currentValue = isControlled ? value ?? '' : internalValue\n const hasText = normalizeTranscript(currentValue).length > 0\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 = normalizeTranscript(rawText)\n if (!text || disabled || effectiveSubmitting) {\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 updateValue('')\n } catch {\n updateMachineState({ type: 'SUBMIT_ERROR' })\n if (source === 'voice-final') {\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, 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 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 normalizeTranscript([currentValue, interimTranscript].filter(Boolean).join(' '))\n }, [currentValue, interimTranscript])\n\n const onTextChange = (event: ChangeEvent<HTMLInputElement>) => {\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<HTMLInputElement>) => {\n if (event.key === 'Escape' && isListening) {\n event.preventDefault()\n await stopListening(true)\n return\n }\n\n if (event.key === 'Enter') {\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 || DEFAULT_IDLE_HELPER,\n typing: statusMessage || DEFAULT_IDLE_HELPER,\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 || DEFAULT_IDLE_HELPER,\n }\n\n const unsupportedMessage = defaultVoiceErrorMessage('not-supported')\n const shouldShowUnsupported = enableVoice && !hasVoice\n const resolvedStatus = shouldShowUnsupported ? unsupportedMessage : statusByState[effectiveState]\n const isStatusError = effectiveState === 'error' || shouldShowUnsupported\n const meterBars = createMeterBars(meterLevel)\n const sendDisabled = disabled || effectiveSubmitting || normalizeTranscript(currentValue).length === 0\n\n return (\n <Container data-testid={dataTestId}>\n <VisuallyHiddenLabel htmlFor={inputId}>\n {label}\n </VisuallyHiddenLabel>\n <ControlsRow>\n <InputWrapper>\n <InputShell data-disabled={disabled || effectiveSubmitting}>\n <Input\n id={inputId}\n type=\"text\"\n aria-label={label}\n value={displayedValue}\n onChange={onTextChange}\n onKeyDown={onInputKeyDown}\n placeholder={placeholder}\n disabled={disabled || effectiveSubmitting}\n readOnly={isListening}\n aria-describedby={statusId}\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 <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 </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 <Typography variant=\"small\" color={isStatusError ? 'error' : 'subdued'}>\n {resolvedStatus}\n </Typography>\n </StatusAnnouncement>\n </StatusText>\n\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 </StatusRow>\n </Container>\n )\n}\n","import React from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport tokens 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).\nconst FADE_MS = parseInt(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 (crossCircle icon)\n * - warning: Cautions, potential issues (bell icon)\n * - info: Tips, helper text, neutral information (info icon)\n * - success: Confirmations, successful operations (checkRing icon)\n * @default 'info'\n */\n variant?: 'error' | 'warning' | 'info' | 'success'\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\n */\n action?: React.ReactNode\n \n /**\n * Compact inline variant with reduced padding\n * @default false\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\nconst variantIcons: Record<string, IconName> = {\n error: 'crossCircle',\n warning: 'bell',\n info: 'info',\n success: 'checkRing'\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 $inline: boolean\n $isExiting: boolean\n $reducedExit: boolean\n}>`\n display: flex;\n align-items: ${({ $inline }) => ($inline ? 'center' : 'flex-start')};\n gap: ${({ $inline }) =>\n $inline ? semantic.spacing.layout.sm : semantic.spacing.layout.md};\n padding: ${({ $inline }) =>\n $inline ? semantic.spacing.layout.sm : semantic.spacing.layout.md};\n border-radius: ${semantic.border.radius.sm};\n border: ${semantic.border.width.thin} solid;\n position: relative;\n width: 100%;\n \n /* Variant-specific colors */\n ${({ $variant }) => {\n switch ($variant) {\n case 'error':\n return `\n background-color: ${semantic.color.background['error-subtle']};\n border-color: ${semantic.color.border.error};\n color: ${semantic.color.text.error};\n `\n case 'warning':\n return `\n background-color: ${semantic.color.background['warning-subtle']};\n border-color: ${semantic.color.border.warning};\n color: ${semantic.color.text.warning};\n `\n case 'success':\n return `\n background-color: ${semantic.color.background['success-subtle']};\n border-color: ${semantic.color.border.success};\n color: ${semantic.color.text.success};\n `\n case 'info':\n default:\n return `\n background-color: ${semantic.color.background['interactive-subtle']};\n border-color: ${semantic.color.border.interactive};\n color: ${semantic.color.text.interactive};\n `\n }\n }}\n \n /* Responsive adjustments */\n @media (min-width: ${semantic.breakpoint.md}) {\n padding: ${({ $inline }) =>\n $inline\n ? semantic.spacing.layout.sm\n : semantic.spacing.layout.lg};\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.easeOut} forwards`\n : css`${fadeThenCollapse} ${EXIT_MS}ms ${easing.easeOut} 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.spacing.layout.xs};\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\nconst StyledActions = styled.div`\n display: flex;\n align-items: center;\n gap: ${semantic.spacing.layout.sm};\n flex-shrink: 0;\n margin-left: auto;\n`\n\nconst StyledDismissButton = styled(IconButton)`\n margin-left: ${semantic.spacing.layout.xs};\n\tposition: absolute;\n\tright: ${semantic.spacing.layout.sm};\n\ttop: ${semantic.spacing.layout.sm};\n`\n\nexport const Alert = ({\n variant = 'info',\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 $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 </StyledContent>\n\n {(action || dismissible) && (\n <StyledActions>\n {action}\n {dismissible && (\n <StyledDismissButton\n iconName=\"close\"\n size=\"small\"\n variant=\"naked\"\n onClick={handleDismiss}\n aria-label=\"Dismiss alert\"\n data-testid={dataTestId ? `${dataTestId}-dismiss` : undefined}\n />\n )}\n </StyledActions>\n )}\n </StyledAlert>\n )\n}\n\nAlert.displayName = 'Alert'\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 '@/styles/tokens.json'\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.spacing.layout.sm};\n padding: ${tokens.semantic.spacing.layout.sm};\n\n &:last-of-type a {\n text-decoration: none;\n color: ${tokens.semantic.color.text.subdued};\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 '@/styles/tokens.json'\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\nconst CardSmallStyled = styled.div`\n a {\n text-decoration: none;\n }\n\n img {\n border-radius: ${tokens.semantic.border.radius.sm};\n transition: opacity ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeOut};\n width: 100%;\n height: auto;\n display: block;\n }\n\n &:hover {\n img {\n opacity: 0.8;\n }\n }\n\n &:focus-within {\n outline: none;\n box-shadow: 0 0 0 ${tokens.semantic.border.width.thick} ${tokens.semantic.color.border.strong};\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 '@/styles/tokens.json'\n\nconst { semantic: { border } } = tokens\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 &:hover {\n img {\n opacity: 0.8;\n }\n }\n\n img {\n border-radius: ${border.radius['2xl']};\n transition: opacity ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeOut};\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 '@/styles/tokens.json'\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.background.inverse\n : tokens.component.input.default.backgroundColor};\n border-color: ${(props) => {\n if (props.$state === 'error') return tokens.component.input.error.borderColor\n if (props.$checked || props.$indeterminate)\n return tokens.semantic.border.strong\n return tokens.component.input.default.borderColor\n }};\n cursor: ${(props) => (props.$state === 'disabled' ? 'not-allowed' : 'pointer')};\n transition: all ${tokens.semantic.motion.duration.fast} ${tokens.semantic.motion.easing.easeOut};\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.border.strong\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.component.input.focus.outlineOffset};\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\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.spacing.layout.md};\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 '@/styles/tokens.json'\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.spacing.layout.xs};\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.spacing.layout['5xl']}; /* 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 '@/styles/tokens.json'\nimport { reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\n\nconst { semantic: { color, border, spacing, 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: ${color.background.subtle};\n border: ${border.subtle};\n border-radius: ${tokens.semantic.border.radius.sm};\n padding: ${spacing.layout.md};\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: ${spacing.layout.sm} 0;\n position: relative;\n transition: max-height ${motion.duration.slow} ${motion.easing.easeInOut};\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\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: ${spacing.layout.lg};\n right: ${spacing.layout.sm};\n`\n\nconst ExpandButtonWrapper = styled.div<{ $hasGradient: boolean }>`\n display: flex;\n justify-content: center;\n padding: ${spacing.layout.sm} 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: ${spacing.layout.sm};\n border-radius: ${tokens.semantic.border.radius.sm};\n transition: opacity ${motion.duration.slow} ${motion.easing.easeInOut}, background ${motion.duration.slow} ${motion.easing.easeInOut};\n \n ${({ $hasGradient }) => $hasGradient ? `\n margin-top: -${spacing.layout['4xl']};\n padding-top: ${spacing.layout['4xl']};\n background: linear-gradient(\n to bottom,\n transparent 0%,\n ${color.background.subtle} 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 '../../../styles/tokens.json'\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 /** Format mode for date display */\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.spacing.layout.md} ${tokens.semantic.spacing.layout.sm};\n background-color: ${tokens.semantic.color.background.default};\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.zIndex.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.spacing.layout.sm};\n`\n\nconst StyledRightSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.spacing.layout.md};\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 '@/styles/tokens.json'\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.spacing.layout['4xl'] :\n $size === 'large' ? semantic.spacing.layout['8xl'] :\n semantic.spacing.layout['6xl']\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.spacing.layout['2xl']};\n color: ${({ $variant }) =>\n $variant === 'error' ? semantic.color.icon.error :\n $variant === 'success' ? semantic.color.icon.success :\n semantic.color.icon.subdued\n };\n`\n\nconst StyledTextContainer = styled.div`\n max-width: ${tokens.component.emptyState.text.maxWidth};\n margin-bottom: ${semantic.spacing.layout['2xl']};\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.spacing.layout.md }}>\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 '@/styles/tokens.json'\n\nconst { semantic: { spacing: { layout: spacing }, border } } = 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: ${spacing['7xl']};\n }\n\n img {\n border-radius: ${border.radius['2xl']};\n transition: opacity ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeOut};\n\n &:hover {\n opacity: 0.8;\n }\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: ${spacing['2xl']};\n\n @media (min-width: ${tokens.semantic.breakpoint.lg}) {\n grid-column: span 6;\n margin-top: 0;\n padding-right: ${spacing['4xl']};\n }\n\n @media (min-width: ${tokens.semantic.breakpoint.xl}) {\n padding-right: ${spacing['11xl']};\n }\n`\n\nconst ButtonWrapper = styled.div`\n button {\n margin-top: ${spacing.lg};\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 '@/styles/tokens.json'\nimport { Icon } from '../../atoms/Icon'\nimport { Typography } from '../../atoms/Typography'\nimport { reducedMotion } from '../../../lib/styleUtils'\n\nconst { semantic: { color, border, zIndex, elevation, motion, spacing: { layout: spacing } }, component: { input, field } } = tokens\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 padding: ${input.default.paddingY} ${input.default.paddingX};\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.normal} ${easing.easeInOut},\n outline ${duration.normal} ${easing.easeInOut};\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: ${input.focus.outlineOffset};\n }\n \n &:disabled {\n background-color: ${input.disabled.backgroundColor};\n color: ${input.disabled.textColor};\n border-color: ${input.disabled.borderColor};\n cursor: ${input.disabled.cursor};\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: ${spacing.sm};\n transition: transform ${duration.fast} ${easing.easeOut};\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: ${zIndex.dropdown};\n background-color: ${input.default.backgroundColor};\n border: ${input.default.borderWidth} solid ${input.default.borderColor};\n border-radius: ${input.default.borderRadius};\n box-shadow: ${elevation.floating};\n margin-top: ${spacing.xs};\n overflow: hidden;\n opacity: ${({ $isOpen }) => ($isOpen ? 1 : 0)};\n visibility: ${({ $isOpen }) => ($isOpen ? 'visible' : 'hidden')};\n transform: ${({ $isOpen }) => ($isOpen ? 'translateY(0)' : `translateY(-${spacing.sm})`)};\n transition: all ${duration.fast} ${easing.easeOut};\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: block;\n padding: ${input.default.paddingY} ${input.default.paddingX};\n background-color: ${({ $isSelected, $isFocused }) => {\n if ($isFocused) return color.background.surface\n if ($isSelected) return color.background.surface\n return 'transparent'\n }};\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.easeOut};\n \n &:hover {\n background-color: ${color.background.surface};\n }\n \n &:focus {\n outline: none;\n background-color: ${color.background.surface};\n }\n \n &:not(:last-child) {\n border-bottom: ${border.subtle};\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: ${field.gap};\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: field.gap }}>\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 </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 '@/styles/tokens.json'\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 * Vertical spacing between items\n * @default 'comfortable'\n */\n spacing?: 'compact' | 'comfortable'\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 $spacing: 'compact' | 'comfortable'\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 <StyledList\n $dividers={dividers}\n $spacing={spacing}\n className={className}\n data-testid={dataTestId}\n role=\"list\"\n {...props}\n >\n {children}\n </StyledList>\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 } 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 '@/styles/tokens.json'\nimport { exitAnimation, reducedMotion } from '../../../lib/styleUtils'\nimport { useInert, usePresence } from '../../../lib/usePresence'\n\nconst { semantic } = tokens\nconst { spacing: { layout }, color, border, 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 /** Button variant */\n variant?: 'primary' | 'secondary' | 'naked' | 'emphasis' | 'danger'\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: ${color.background.overlay};\n z-index: ${semantic.zIndex.modal};\n ${css<{ $isExiting: boolean }>`animation: ${fadeIn} ${motion.duration.normal} ${motion.easing.easeOut}${({ $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.zIndex.modal};\n\n width: ${({ $width }) => $width};\n max-width: calc(100vw - ${layout.lg} * 2);\n max-height: calc(100vh - ${layout.lg} * 2);\n\n display: flex;\n flex-direction: column;\n\n background-color: ${color.background.subtle};\n border-radius: ${border.radius.xl};\n box-shadow: ${elevation.overlay};\n overflow: hidden;\n\n ${css<{ $isExiting: boolean }>`animation: ${scaleIn} ${motion.duration.normal} ${motion.easing.easeOut}${({ $isExiting }) => $isExiting && exitAnimation};`}\n\n ${reducedMotion} {\n animation: ${fadeIn} ${motion.duration.normal} ${motion.easing.easeOut}${({ $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.normal} ${motion.easing.easeOut}${({ $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: ${layout.lg} ${layout.lg} 0;\n flex-shrink: 0;\n`\n\nconst StyledBody = styled.div`\n flex: 1 1 auto;\n overflow-y: auto;\n padding: ${layout.md} ${layout.lg};\n\n /* Scrollbar styling */\n &::-webkit-scrollbar {\n width: ${semantic.spacing.layout.sm};\n }\n &::-webkit-scrollbar-track {\n background: ${color.background.surface};\n }\n &::-webkit-scrollbar-thumb {\n background: ${color.border.default};\n border-radius: ${border.radius.circle};\n }\n &::-webkit-scrollbar-thumb:hover {\n background: ${color.border.strong};\n }\n`\n\nconst StyledFooter = styled.div`\n display: flex;\n justify-content: flex-end;\n gap: ${layout.sm};\n padding: 0 ${layout.lg} ${layout.lg};\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 from 'styled-components'\nimport tokens from '@/styles/tokens.json'\n\nconst { component: { input } } = tokens\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\nexport const StyledInputBase = styled.input.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<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 width: 100%;\n padding: ${input.default.paddingY} ${input.default.paddingX};\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.normal} ${tokens.semantic.motion.easing.easeInOut},\n outline ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeInOut};\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: ${input.focus.outlineOffset};\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: ${input.disabled.cursor};\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\n/**\n * Base styled textarea with shared styling\n */\nexport const StyledTextAreaBase = styled.textarea.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledInputBaseProps>`\n /* Inherit all input base styles */\n ${StyledInputBase}\n \n /* TextArea specific */\n min-height: ${tokens.component.input.textarea.minHeight};\n resize: vertical;\n font-family: inherit;\n line-height: ${tokens.semantic.lineHeight.normal};\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 '@/styles/tokens.json'\n\nconst { field } = tokens.component\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: ${field.gap};\n width: 100%;\n`\n\nconst StyledLabel = styled.label`\n display: flex;\n align-items: center;\n gap: ${field.label.gap};\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.spacing.layout['6xl']};\n`\n\nconst StyledStepperContainer = styled.div`\n position: absolute;\n right: ${tokens.semantic.spacing.layout.sm};\n display: flex;\n flex-direction: row;\n gap: ${tokens.semantic.spacing.layout.sm};\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 '@/styles/tokens.json'\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.spacing.layout['2xl']};\n margin-top: ${({ $hasBackButton }) => $hasBackButton ? tokens.semantic.spacing.layout.none : tokens.semantic.spacing.layout['7xl']};\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 '@/styles/tokens.json'\n\nconst { field } = tokens.component\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: ${field.gap};\n width: 100%;\n`\n\nconst StyledLabel = styled.label`\n display: flex;\n align-items: center;\n gap: ${field.label.gap};\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.spacing.layout.sm};\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 '@/styles/tokens.json'\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.spacing.layout.sm};\n padding: ${semantic.spacing.layout.sm} ${semantic.spacing.layout.md};\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.normal} ${semantic.motion.easing.easeInOut}, outline ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut};\n \n ${props => props.$isFocused && `\n border-color: ${component.input.focus.borderColor};\n outline: ${component.input.focus.outline};\n outline-offset: ${component.input.focus.outlineOffset};\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: ${semantic.color.text.subdued};\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.spacing.layout.xs});\n left: 0;\n right: 0;\n max-height: ${tokens.semantic.size.menu.maxHeight};\n overflow-y: auto;\n background-color: ${semantic.color.background.subtle};\n border: ${semantic.border.width.thin} solid ${semantic.color.border.default};\n border-radius: ${semantic.border.radius.md};\n box-shadow: ${semantic.elevation.floating};\n list-style: none;\n padding: ${semantic.spacing.layout.xs} 0;\n margin: 0;\n z-index: ${semantic.zIndex.dropdown};\n`\n\nconst StyledSectionHeader = styled.div`\n padding: ${semantic.spacing.layout.sm} ${semantic.spacing.layout.md};\n font: ${tokens.component.searchField.sectionHeader.typography};\n color: ${semantic.color.text.subdued};\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 aria-hidden=\"true\"\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\" aria-hidden=\"true\" /> : undefined}\n interactive\n selected={index === highlightedIndex}\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 '@/styles/tokens.json'\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.color.background.overlay};\n z-index: ${semantic.zIndex.overlay};\n ${css<{ $isExiting: boolean }>`animation: ${fadeIn} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}${({ $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.color.background.default};\n box-shadow: ${semantic.elevation.overlay};\n z-index: ${semantic.zIndex.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.spacing.layout.lg : '0'\n const borderRadius = isDrawer ? semantic.border.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.spacing.layout.lg} * 2` : '0px'});\n border-radius: ${borderRadius} 0 0 ${borderRadius};\n animation: ${slideInRight} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}${({ $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.spacing.layout.lg} * 2` : '0px'});\n border-radius: 0 ${borderRadius} ${borderRadius} 0;\n animation: ${slideInLeft} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}${({ $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.spacing.layout.lg} * 2` : '0px'});\n border-radius: 0 0 ${borderRadius} ${borderRadius};\n animation: ${slideInTop} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}${({ $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.spacing.layout.lg} * 2` : '0px'});\n border-radius: ${borderRadius} ${borderRadius} 0 0;\n animation: ${slideInBottom} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}${({ $isExiting }) => $isExiting && exitAnimation};\n `\n }\n }}\n\n ${reducedMotion} {\n animation: ${fadeIn} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}${({ $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.spacing.layout.sm};\n }\n \n &::-webkit-scrollbar-track {\n background: ${semantic.color.background.subtle};\n }\n \n &::-webkit-scrollbar-thumb {\n background: ${semantic.color.border.default};\n border-radius: ${semantic.border.radius.circle};\n }\n \n &::-webkit-scrollbar-thumb:hover {\n background: ${semantic.color.border.strong};\n }\n`\n\nconst StyledSheetContent = styled.div`\n padding: ${semantic.spacing.layout['2xl']};\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 '@/styles/tokens.json'\nimport { 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.spacing.layout.lg};\n`\n\nconst StyledSliderTrackContainer = styled.div`\n position: relative;\n width: 100%;\n height: ${semantic.spacing.layout['6xl']};\n display: flex;\n align-items: center;\n`\n\nconst StyledTrack = styled.div<{ $disabled?: boolean }>`\n position: relative;\n width: 100%;\n height: ${semantic.spacing.layout.xs};\n background-color: ${({ $disabled }) =>\n $disabled \n ? semantic.color.background.disabled\n : semantic.color.border.default\n };\n border-radius: ${semantic.border.radius.circle};\n cursor: ${({ $disabled }) => $disabled ? 'not-allowed' : 'pointer'};\n`\n\nconst StyledTrackFill = styled.div<{ $disabled?: boolean }>`\n position: absolute;\n height: 100%;\n background-color: ${({ $disabled }) =>\n $disabled\n ? semantic.color.border.default\n : semantic.color.background.emphasis\n };\n border-radius: ${semantic.border.radius.circle};\n pointer-events: none;\n`\n\nconst StyledThumb = styled.div<{ \n $disabled?: boolean\n $active?: boolean\n}>`\n position: absolute;\n width: ${semantic.spacing.layout.xl};\n height: ${semantic.spacing.layout.xl};\n top: -${semantic.spacing.layout.sm};\n background-color: ${({ $disabled }) =>\n $disabled\n ? semantic.color.background.disabled\n : semantic.color.background.subtle\n };\n border: ${semantic.border.width.thick} solid ${({ $disabled }) =>\n $disabled\n ? semantic.color.border.default\n : semantic.color.background.emphasis\n };\n border-radius: ${semantic.border.radius.circle};\n cursor: ${({ $disabled }) => $disabled ? 'not-allowed' : 'grab'};\n transform: translateX(-50%);\n transition: ${semantic.motion.transition.fast};\n box-shadow: ${tokens.component.slider.thumb.shadow.default};\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.width.thick} solid ${semantic.color.border.interactive};\n outline-offset: ${semantic.spacing.layout.xs};\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: -${semantic.spacing.layout['4xl']};\n left: ${semantic.spacing.layout.sm};\n transform: translateX(-50%);\n padding: ${semantic.spacing.layout.xs} ${semantic.spacing.layout.sm};\n background-color: ${semantic.color.background.emphasis};\n color: ${semantic.color.text.inverse};\n font: ${semantic.typography.caption};\n border-radius: ${semantic.border.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.spacing.layout.xs} solid transparent;\n border-right: ${semantic.spacing.layout.xs} solid transparent;\n border-top: ${semantic.spacing.layout.xs} solid ${semantic.color.background.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.subdued};\n margin-top: ${semantic.spacing.layout.xs};\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 \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 // Mouse/touch handlers\n const handleTrackClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) 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 handleThumbMouseDown = (thumb: 'single' | 'min' | 'max') => (event: React.MouseEvent) => {\n if (disabled) return\n event.preventDefault()\n setActiveThumb(thumb)\n \n const handleMouseMove = (e: MouseEvent) => {\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 handleMouseUp = () => {\n setActiveThumb(null)\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n }\n \n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\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 style={{ left: `${minPercent}%` }}\n onMouseDown={handleThumbMouseDown('min')}\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 style={{ left: `${maxPercent}%` }}\n onMouseDown={handleThumbMouseDown('max')}\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 onMouseDown={handleThumbMouseDown('single')}\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 { ReactNode, useState, useRef, useEffect, KeyboardEvent, MouseEvent } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/styles/tokens.json'\n\nconst { semantic } = tokens\n\n/**\n * Tab variant options for TabBar\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 * @default 'default'\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 StyledTabListProps {\n $variant: TabVariant\n}\n\ninterface StyledTabProps {\n $variant: TabVariant\n $isActive: boolean\n $disabled: boolean\n}\n\nconst StyledTabList = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledTabListProps>`\n display: flex;\n align-items: center;\n gap: ${props => props.$variant === 'pills' ? semantic.spacing.layout.sm : '0'};\n border-bottom: ${props => \n props.$variant === 'underline' \n ? `${semantic.border.width.thin} solid ${semantic.color.border.subtle}` \n : 'none'\n };\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.color.background.subtle};\n }\n \n &::-webkit-scrollbar-thumb {\n background: ${semantic.color.border.default};\n border-radius: ${semantic.border.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.spacing.layout.sm};\n padding: ${semantic.spacing.layout.md} ${semantic.spacing.layout.lg};\n font: ${semantic.typography.button2};\n white-space: nowrap;\n cursor: ${props => props.$disabled ? 'not-allowed' : 'pointer'};\n border: none;\n background: transparent;\n transition: ${semantic.motion.hover};\n position: relative;\n \n /* Variant-specific styles */\n ${props => {\n if (props.$variant === 'pills') {\n return `\n border-radius: ${semantic.border.radius.circle};\n background-color: ${props.$isActive \n ? semantic.color.background.interactive \n : semantic.color.background.subtle\n };\n color: ${props.$isActive \n ? semantic.color.text.inverse \n : semantic.color.text.default\n };\n \n &:hover:not(:disabled) {\n background-color: ${props.$isActive \n ? semantic.color.background['interactive-hover']\n : semantic.color.background.surface\n };\n }\n `\n }\n \n if (props.$variant === 'underline') {\n return `\n color: ${props.$isActive \n ? semantic.color.text.interactive \n : semantic.color.text.subdued\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.$isActive \n ? semantic.color.background.interactive \n : 'transparent'\n };\n transition: ${semantic.motion.hover};\n }\n \n &:hover:not(:disabled) {\n color: ${semantic.color.text.interactive};\n }\n `\n }\n \n // default variant\n return `\n border-radius: ${semantic.border.radius.sm} ${semantic.border.radius.sm} 0 0;\n background-color: ${props.$isActive \n ? semantic.color.background.subtle \n : semantic.color.background.default\n };\n color: ${props.$isActive \n ? semantic.color.text.default \n : semantic.color.text.subdued\n };\n border: ${semantic.border.width.thin} solid ${semantic.color.border.default};\n border-bottom: ${props.$isActive ? 'none' : `${semantic.border.width.thin} solid ${semantic.color.border.default}`};\n margin-bottom: ${props.$isActive ? '-1px' : '0'};\n \n &:hover:not(:disabled) {\n background-color: ${semantic.color.background.surface};\n color: ${semantic.color.text.default};\n }\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.width.thick} solid ${semantic.color.border.strong};\n outline-offset: ${semantic.spacing.layout.xs};\n z-index: 1;\n }\n \n /* Active/pressed state */\n &:active:not(:disabled) {\n transform: translateY(1px);\n }\n`\n\nconst StyledBadge = styled.span.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $variant: TabVariant; $isActive: boolean }>`\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.spacing.layout.xs};\n font: ${tokens.component.tabBar.badge.typography};\n font-weight: ${tokens.component.tabBar.badge.fontWeight};\n border-radius: ${semantic.border.radius.circle};\n background-color: ${props => props.$variant === 'pills' && props.$isActive\n ? semantic.color.background['inverse-overlay']\n : semantic.color.background.interactive\n };\n color: ${semantic.color.text.inverse};\n`\n\n/**\n * TabBar component for tabbed navigation\n * \n * Provides accessible tab navigation with 3 visual variants, 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 * variant=\"pills\"\n * />\n * ```\n */\nexport const TabBar: React.FC<TabBarProps> = ({\n tabs,\n activeTab,\n onTabChange,\n variant = 'default',\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 $variant={variant}\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 $variant={variant}\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 $variant={variant}\n $isActive={tab.id === activeTab}\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 '@/styles/tokens.json'\n\nconst { field } = tokens.component\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: ${field.gap};\n width: 100%;\n`\n\nconst StyledLabel = styled.label`\n display: flex;\n align-items: center;\n gap: ${field.label.gap};\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 { Badge } from '../../atoms/Badge'\nimport { CategoryBadge, CategoryColor } from '../../atoms/CategoryBadge'\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 '../../../styles/tokens.json'\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.spacing.layout.md} ${tokens.semantic.spacing.layout.md};\n background-color: ${tokens.semantic.color.background.default};\n border-bottom: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border.default};\n gap: ${tokens.semantic.spacing.layout.md};\n transition: background-color ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeOut};\n \n ${({ $clickable }) => $clickable && `\n cursor: pointer;\n \n &:hover {\n background-color: ${tokens.semantic.color.background.subtle};\n }\n \n &:active {\n background-color: ${tokens.semantic.color.background['interactive-active']};\n }\n \n &:focus-visible {\n outline: ${tokens.semantic.border.width.thick} solid ${tokens.semantic.color.border.interactive};\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.spacing.layout.sm};\n`\n\nconst StyledMerchantSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.spacing.layout.sm};\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.spacing.layout.sm};\n`\n\nconst StyledMetadata = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.spacing.layout.sm};\n`\n\nconst StyledIconIndicator = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.spacing.layout.xs};\n color: ${tokens.semantic.color.icon.subdued};\n`\n\nconst StyledTruncatedText = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\n// Map categories to CategoryBadge configurations\nconst categoryConfig: Record<TransactionCategory, { color: CategoryColor; icon: IconName; label: string }> = {\n shopping: { color: 'purple', icon: 'paper', label: 'Shopping' },\n dining: { color: 'orange', icon: 'paper', label: 'Dining' },\n transport: { color: 'blue', icon: 'paper', label: 'Transport' },\n entertainment: { color: 'pink', icon: 'star', label: 'Entertainment' },\n bills: { color: 'red', icon: 'paper', label: 'Bills' },\n other: { color: 'gray', icon: 'paper', label: 'Other' }\n}\n\n// Map status to badge variant\nconst statusToBadgeVariant: Record<TransactionStatus, 'default' | 'primary' | 'error' | 'warning' | 'success'> = {\n completed: 'success',\n pending: 'warning',\n failed: 'error'\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, Badge, 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 // Get badge variant from status\n const badgeVariant = statusToBadgeVariant[status]\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 aria-label={isClickable ? `${merchant} transaction, ${amount < 0 ? 'expense' : 'income'} of ${Math.abs(amount)}` : undefined}\n data-testid={dataTestId}\n >\n <StyledAvatarSection>\n {status === 'pending' ? (\n <Badge variant={badgeVariant} dot aria-label=\"Pending transaction\">\n <Avatar \n name={merchant}\n picture={merchantLogo}\n size=\"md\"\n />\n </Badge>\n ) : (\n <Avatar \n name={merchant}\n picture={merchantLogo}\n size=\"md\"\n />\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 <CategoryBadge\n color={categoryData.color}\n icon={categoryData.icon}\n size=\"small\"\n variant=\"minimal\"\n aria-label={`Category: ${categoryData.label}`}\n >\n {categoryData.label}\n </CategoryBadge>\n )}\n {status === 'failed' && (\n <Badge variant=\"error\" dot aria-label=\"Failed transaction\">\n <span />\n </Badge>\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 <span aria-label=\"Has receipt\" role=\"img\">\n <Icon \n name=\"fileDocSearch\" \n size=\"xs\" \n />\n </span>\n )}\n {hasNote && (\n <span aria-label=\"Has note\" role=\"img\">\n <Icon \n name=\"paper\" \n size=\"xs\" \n />\n </span>\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 '../../../styles/tokens.json'\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":["semantic","tokens","initials","component","avatar","color","size","border","radius","AvatarContainer","styled","div","withConfig","shouldForwardProp","prop","startsWith","displayName","componentId","templateObject_1","__makeTemplateObject","_a","$size","circle","background","surface","AvatarImage","img","templateObject_2","AvatarInitials","span","templateObject_3","fontFamily","fontWeight","fontSize","text","lineHeight","getInitials","name","split","map","word","charAt","join","slice","toUpperCase","Avatar","picture","_b","dataTestId","props","__rest","_c","htmlProps","_d","useState","imageError","setImageError","_e","imageLoaded","setImageLoaded","handleImageError","handleImageLoad","showImage","_jsx","__assign","role","concat","children","src","alt","onError","onLoad","breakpoints","xs","breakpoint","sm","md","lg","xl","media","reducedMotion","fadeOut","keyframes","exitAnimation","css","motion","duration","fast","easing","easeOut","visuallyHidden","typography","letterSpacing","getTypographyStyles","variant","styles","display","tighter","h1","h2","tight","h3","h4","h5","normal","h6","subtitle","body","small","overline","caption","button1","button2","button3","label","getTextColor","colorVariant","colorMap","emphasis","subdued","inverse","disabled","interactive","error","success","warning","getDefaultElement","elementMap","StyledTypography","$variant","$color","Typography","as","defaultElement","elementType","badge","dot","count","ring","scaleIn","BadgeWrapper","BadgeIndicator","$isVisible","$isDot","minWidth","height","paddingX","width","ScreenReaderOnly","templateObject_4","Badge","max","ariaLabel","className","isVisible","displayCount","toString","defaultAriaLabel","_jsxs","StyledBox","templateObject_49","$display","$flexDirection","$justifyContent","$alignItems","$flexWrap","templateObject_5","$gap","spacing","layout","$m","templateObject_7","$mt","templateObject_8","$mr","templateObject_9","$mb","templateObject_10","$ml","$mx","$my","templateObject_13","$p","templateObject_14","$pt","templateObject_15","$pr","$pb","$pl","templateObject_18","$px","templateObject_19","$py","templateObject_20","$width","$height","templateObject_22","$maxWidth","templateObject_23","$maxHeight","templateObject_24","$minWidth","templateObject_25","$minHeight","templateObject_26","$position","templateObject_27","$top","$right","$bottom","templateObject_30","$left","templateObject_31","$borderRadius","templateObject_32","$border","templateObject_33","thin","$borderTop","templateObject_34","$borderRight","$borderBottom","templateObject_36","$borderLeft","templateObject_37","$bg","templateObject_38","$shadow","elevation","$cursor","templateObject_41","$transition","templateObject_42","$hoverShadow","$hoverTransform","templateObject_45","templateObject_44","thick","focusOffset","$overflow","templateObject_46","$overflowX","templateObject_47","$overflowY","BoxTransform","flexDirection","justifyContent","alignItems","flexWrap","gap","m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","maxWidth","maxHeight","minHeight","position","top","right","bottom","left","borderRadius","borderTop","borderRight","borderBottom","borderLeft","bg","shadow","cursor","transition","hoverShadow","hoverTransform","overflow","overflowX","overflowY","onClick","onKeyDown","tabIndex","rest","Box","IconStyled","icon","$iconColor","Icon","iconColor","iconData","iconsData","console","warn","viewBox","fill","xmlns","d","path","button","baseButtonStyles","hover","focus","outline","outlineOffset","getVariantStyles","variantConfig","primary","backgroundColor","textColor","hoverBg","activeBg","active","disabledBg","disabledText","secondary","variants","naked","danger","config","getSizeStyles","sizes","font","padding","medium","large","StyledButton","StyledLink","a","getIconSize","buttonSize","renderButtonContent","iconName","iconSize","Button","url","purpose","target","LinkComponent","linkComponent","linkProps","href","buttonProps_1","handleClick","e","window","open","location","buttonProps","category","StyledCategoryBadge","CategoryBadge","chip","SELECTED_HOVER","SELECTED_ACTIVE","$selected","$clickable","$disabled","subtle","StyledChip","chipTokens","IconContainer","CloseButton","closeButton","none","Chip","ariaDescribedBy","title","isClickable","Boolean","normalizedVariant","content","undefined","handleKeyDown","event","key","preventDefault","LegacyChip","newVariant","FilterChip","selected","onDismiss","isDismissible","handleDismiss","stopPropagation","handleCloseKeyDown","closeButtonLabel","type","BooleanChip","StyledContainer","Container","PictureWrapper","ImageLink","easeInOut","ImageButton","StyledImage","Picture","image","TimeStyled","time","formatDateSmart","date","customFormat","isToday","isYesterday","isThisWeek","weekStartsOn","format","DateFormatter","dateString","formatString","mode","parseISO","displayText","dateTime","iconButton","IconButtonStyled","IconButton","ariaExpanded","ariaPressed","trim","assign","StyledWrapper","$align","$weight","sizeToTypographyVariant","xlarge","sizeToIconSize","generateAriaLabel","amount","currency","locale","formatter","Intl","NumberFormat","style","minimumFractionDigits","maximumFractionDigits","parts","formatToParts","Math","abs","integerPart","find","value","fractionPart","sign","MoneyDisplay","showSign","_f","weight","_g","_h","align","formattedAmount","showPositiveIcon","showNegativeIcon","typographyVariant","amountColor","ProgressBarContainer","progressBar","ProgressBarFill","min","$value","ProgressBar","ariaLabelledBy","labelledBy","separatorTokens","separatorSpacing","StyledDivider","$orientation","borderProperty","strong","minimal","margin","Divider","orientation","StyledStack","getGapValue","semanticSpacing","Stack","direction","wrap","gapValue","cssProps","statusColors","getStatusConfig","status","configs","pending","bgColor","completed","failed","cancelled","processing","scheduled","sizeConfig","StyledStatusBadge","$status","StatusBadge","showIcon","liveRegion","statusConfig","sizeStyles","displayLabel","StyledTag","Tag","StyledBalanceSection","StyledTrendSection","StyledStackWrapper","StyledHeaderWrapper","accountCard","header","trendToIcon","up","down","neutral","trendToColor","AccountCard","accountName","balance","accountNumber","trend","trendValue","action","secondaryAction","trendIcon","trendColor","StyledListItem","li","touchTarget","$interactive","opacity","$destructive","StyledItemContent","$spacing","StyledIconContainer","StyledTextContent","StyledRightContent","StyledChevronIcon","templateObject_6","$expanded","StyledExpandedContent","listItem","expandedIndent","compact","comfortable","ListItem","expandable","expanded","onToggle","destructive","customRole","ariaSelected","id","customTabIndex","customOnKeyDown","isInteractive","contentRole","ariaDisabled","ariaCurrent","EXIT_DURATION_MS","parseInt","usePresence","isOpen","exitMs","isMounted","setIsMounted","useEffect","timer","setTimeout","clearTimeout","isPresent","isExiting","useInert","ref","isInert","node","current","setAttribute","removeAttribute","slideUp","fadeIn","StyledOverlay","overlay","zIndex","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","input","replace","mapSpeechErrorCode","defaultVoiceErrorMessage","code","textDrivenState","hasText","agentInputStateTransition","currentState","DEFAULT_IDLE_HELPER","DEFAULT_LISTENING_MESSAGE","DEFAULT_PROCESSING_MESSAGE","rotateRing","ControlsRow","InputShell","borderWidth","borderColor","raised","Input","InputActions","CircularActionIconButton","InputWrapper","MicButtonWrapper","ringMask","MicListeningRing","templateObject_12","$reducedMotion","templateObject_11","StatusRow","StatusText","StatusAnnouncement","MeterContainer","templateObject_16","MeterBar","VisuallyHiddenLabel","getInitialState","createMeterBars","level","clampedLevel","AgentInput","defaultValue","onChange","onSubmit","placeholder","isSubmitting","enableVoice","autoSubmitOnVoiceFinal","voiceLanguage","noSpeechTimeoutMs","onVoiceStart","onVoiceStop","onVoiceInterim","onVoiceFinal","onVoiceError","statusMessage","errorMessage","_j","isControlled","_k","internalValue","setInternalValue","_l","machineState","setMachineState","_m","interimTranscript","setInterimTranscript","_o","internalSubmitting","setInternalSubmitting","_p","internalErrorMessage","setInternalErrorMessage","_q","voiceSupported","setVoiceSupported","_r","prefersReducedMotion","setPrefersReducedMotion","_s","meterLevel","setMeterLevel","recognitionRef","noSpeechTimeoutRef","isStoppingRef","hasSubmittedVoiceFinalRef","audioStreamRef","audioContextRef","meterRafRef","inputId","useId","statusId","currentValue","effectiveSubmitting","effectiveState","isListening","hasVoice","updateMachineState","useCallback","previousState","updateValue","nextValue","clearNoSpeechTimeout","stopMeter","__awaiter","getTracks","forEach","track","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","__spreadArray","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","mediaQuery","matchMedia","sync","matches","displayedValue","useMemo","filter","onTextChange","onInputKeyDown","onMicToggle","statusByState","idle","typing","listening","processingFinalTranscript","submitting","unsupportedMessage","shouldShowUnsupported","resolvedStatus","isStatusError","meterBars","sendDisabled","htmlFor","readOnly","barHeight","alert","FADE_MS","EXIT_MS","fadeThenCollapse","EXIT_ANIMATION_NAMES","getName","variantIcons","info","variantIconColors","variantTitleColors","StyledAlert","$inline","$reducedExit","StyledContent","StyledTitle","StyledMessage","StyledActions","StyledDismissButton","Alert","dismissible","inline","ariaLive","phase","setPhase","reducedExit","setReducedExit","exitStyle","setExitStyle","alertRef","onDismissRef","getComputedStyle","paddingTop","paddingBottom","boxSizing","offsetHeight","parseFloat","borderTopWidth","borderBottomWidth","call","forwarded","handleAnimationEnd","onAnimationEnd","pseudoElement","includes","animationName","alertIconColor","alertTitleColor","BreadcrumbNavStyled","nav","BreadcrumbStyled","breadcrumbs","item","BreadcrumbSeparator","isInternalUrl","Breadcrumbs","breadcrumb","rel","CardSmallStyled","CardSmall","meta","CardLargeStyled","cardLarge","CardLarge","excerpt","labels","onImageClick","imageHref","Array","isArray","HiddenCheckboxInput","StyledCheckbox","checkbox","box","$checked","$indeterminate","$state","StyledCheckboxContainer","row","$labelPosition","StyledCheckboxLabel","StyledFieldContainer","StyledHelperText","field","helperText","$error","colorError","Checkbox","forwardRef","checked","indeterminate","labelPosition","providedId","ariaDescribedby","generatedId","helperTextId","errorId","state","describedBy","inputRef","useImperativeHandle","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","scrollHeight","handleToggleExpand","prev","showExpandButton","$sticky","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","DropdownContainer","DropdownTrigger","paddingY","$hasError","$isOpen","DropdownIcon","DropdownMenu","dropdown","floating","menu","DropdownOption","$isSelected","$isFocused","Dropdown","options","setIsOpen","focusedIndex","setFocusedIndex","dropdownRef","dropdownId","selectedOption","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","StyledInputBase","StyledTextAreaBase","textarea","StyledLabel","colorDisabled","StyledRequiredIndicator","requiredIndicator","StyledInputWrapper","StyledNumberInput","StyledStepperContainer","$isError","NumberInput","required","step","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","suggestions","showRecentSearches","recentSearches","onSuggestionSelect","onClearRecentSearches","debounceMs","loading","isFocused","setIsFocused","showSuggestions","setShowSuggestions","highlightedIndex","setHighlightedIndex","debouncedValue","setDebouncedValue","listRef","debouncedOnChange","displayItems","items","s","push","data","r","handleInputChange","handleFocus","onFocus","handleBlur","onBlur","handleSuggestionClick","suggestion","handleClear","scrollIntoView","block","showClearButton","hasItems","isString","slideInRight","slideInLeft","slideInTop","slideInBottom","StyledSheet","isDrawer","StyledSheetContent","Sheet","StyledSliderContainer","StyledSliderTrackContainer","StyledTrack","StyledTrackFill","StyledThumb","slider","thumb","$active","StyledValueLabel","full","StyledMinMaxLabels","Slider","controlledValue","controlledRangeValue","rangeValue","defaultRangeValue","onRangeChange","showValueLabel","trackRef","activeThumb","setActiveThumb","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","minVal","maxVal","distToMin","distToMax","handleThumbMouseDown","handleMouseMove","handleMouseUp","valueChange","singlePercent","minPercent","maxPercent","onMouseDown","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","statusToBadgeVariant","TransactionListItem","merchant","merchantLogo","hasReceipt","hasNote","amountVariant","categoryData","badgeVariant","gapSpacing","base","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","templateObject_35","templateObject_17","$colsSm","$colsMd","$colsLg","templateObject_21","$colsXl","$gapSm","$gapMd","$gapLg","$gapXl","$gapXSm","$gapXMd","templateObject_28","$gapXLg","templateObject_29","$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/components/atoms/Avatar/Avatar.tsx","../src/lib/styleUtils.ts","../src/components/atoms/Typography/Typography.tsx","../src/components/atoms/Badge/Badge.tsx","../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/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/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/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","import React, { useState } from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/styles/tokens.json'\n\n// Destructure tokens\nconst { semantic } = tokens\nconst { initials } = tokens.component.avatar\nconst { color, size, border } = semantic\nconst { radius } = border\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.circle};\n background-color: ${color.background.surface};\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.circle};\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 '../styles/tokens.json'\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// 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.\nexport const exitAnimation = css`, ${fadeOut} ${tokens.semantic.motion.duration.fast} ${tokens.semantic.motion.easing.easeOut} 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","import React from 'react'\nimport styled from 'styled-components'\nimport tokens from '@/styles/tokens.json'\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: ${typography.button1};`,\n button2: `font: ${typography.button2};`,\n button3: `font: ${typography.button3};`,\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.emphasis,\n subdued: color.text.subdued,\n inverse: color.text.inverse,\n disabled: color.text.disabled,\n interactive: color.text.interactive,\n error: color.text.error,\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 { reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\nimport tokens from '@/styles/tokens.json'\nimport { Typography } from '../Typography'\n\nconst { semantic } = tokens\nconst { color, border } = semantic\nconst { radius } = border\nconst { dot, count, ring } = tokens.component.badge\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 /** Visual variant of the badge */\n variant?: 'default' | 'primary' | 'error' | 'warning' | 'success'\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.spacing.component.xs}`};\n border-radius: ${radius.circle};\n line-height: ${count.lineHeight};\n white-space: nowrap;\n box-shadow: 0 0 0 ${ring.width} ${color.background.default};\n animation: ${scaleIn} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeOut};\n\n ${reducedMotion} {\n animation: none;\n }\n \n ${props => {\n switch (props.$variant) {\n case 'primary':\n return `\n background-color: ${color.background.interactive};\n color: ${color.text.inverse};\n `\n case 'error':\n return `\n background-color: ${color.background.error};\n color: ${color.text.inverse};\n `\n case 'warning':\n return `\n background-color: ${color.background.warning};\n color: ${color.text.inverse};\n `\n case 'success':\n return `\n background-color: ${color.background.success};\n color: ${color.text.inverse};\n `\n default:\n return `\n background-color: ${color.background.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 React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../styles/tokens.json'\nimport type { Tokens } from '../../../types/tokens'\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: ${tokens.semantic.spacing.layout[props.$gap]};`}\n \n // Margin\n ${props => props.$m && css`margin: ${tokens.semantic.spacing.layout[props.$m]};`}\n ${props => props.$mt && css`margin-top: ${tokens.semantic.spacing.layout[props.$mt]};`}\n ${props => props.$mr && css`margin-right: ${tokens.semantic.spacing.layout[props.$mr]};`}\n ${props => props.$mb && css`margin-bottom: ${tokens.semantic.spacing.layout[props.$mb]};`}\n ${props => props.$ml && css`margin-left: ${tokens.semantic.spacing.layout[props.$ml]};`}\n ${props => props.$mx && css`\n margin-left: ${tokens.semantic.spacing.layout[props.$mx]};\n margin-right: ${tokens.semantic.spacing.layout[props.$mx]};\n `}\n ${props => props.$my && css`\n margin-top: ${tokens.semantic.spacing.layout[props.$my]};\n margin-bottom: ${tokens.semantic.spacing.layout[props.$my]};\n `}\n \n // Padding\n ${props => props.$p && css`padding: ${tokens.semantic.spacing.layout[props.$p]};`}\n ${props => props.$pt && css`padding-top: ${tokens.semantic.spacing.layout[props.$pt]};`}\n ${props => props.$pr && css`padding-right: ${tokens.semantic.spacing.layout[props.$pr]};`}\n ${props => props.$pb && css`padding-bottom: ${tokens.semantic.spacing.layout[props.$pb]};`}\n ${props => props.$pl && css`padding-left: ${tokens.semantic.spacing.layout[props.$pl]};`}\n ${props => props.$px && css`\n padding-left: ${tokens.semantic.spacing.layout[props.$px]};\n padding-right: ${tokens.semantic.spacing.layout[props.$px]};\n `}\n ${props => props.$py && css`\n padding-top: ${tokens.semantic.spacing.layout[props.$py]};\n padding-bottom: ${tokens.semantic.spacing.layout[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: ${tokens.semantic.border.radius[props.$borderRadius]};`}\n ${props => props.$border && css`border: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border[props.$border]};`}\n ${props => props.$borderTop && css`border-top: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border[props.$borderTop]};`}\n ${props => props.$borderRight && css`border-right: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border[props.$borderRight]};`}\n ${props => props.$borderBottom && css`border-bottom: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border[props.$borderBottom]};`}\n ${props => props.$borderLeft && css`border-left: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border[props.$borderLeft]};`}\n \n // Background & Color\n ${props => props.$bg && css`background-color: ${tokens.semantic.color.background[props.$bg]};`}\n ${props => props.$color && css`color: ${tokens.semantic.color.text[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 &:active {\n transform: translateY(0);\n }\n \n &:focus-visible {\n outline: ${tokens.semantic.border.width.thick} solid ${tokens.semantic.color.border.interactive};\n outline-offset: ${tokens.semantic.border.focusOffset};\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 '@/styles/tokens.json'\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.emphasis\n case 'subdued':\n return tokens.semantic.color.icon.subdued\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.interactive\n case 'error':\n return tokens.semantic.color.icon.error\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 '@/styles/tokens.json'\nimport { Icon, type IconName } from '../Icon'\n\nconst { component: { button }, semantic } = tokens\n// Padding comes from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst spacing = semantic.spacing.component\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.spacing.layout.xs};\n height: max-content;\n cursor: pointer;\n border: none;\n text-decoration: none;\n transition: ${semantic.motion.hover};\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\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 using component tokens\nconst getSizeStyles = ({ $size }: StyledButtonProps) => {\n switch ($size) {\n case 'small':\n return `\n font: ${button.sizes.small.font};\n padding: ${spacing.sm} ${spacing.md};\n `\n case 'medium':\n return `\n font: ${button.sizes.medium.font};\n padding: ${spacing.sm} ${spacing.lg};\n `\n case 'large':\n return `\n font: ${button.sizes.large.font};\n padding: ${spacing.md} ${spacing.lg};\n `\n default:\n return `\n font: ${button.sizes.large.font};\n padding: ${spacing.md} ${spacing.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 '@/styles/tokens.json'\n\nconst { semantic } = tokens\nconst { color, border, spacing } = semantic\nconst { label } = tokens.component.badge\nconst { category } = color\nconst { radius } = border\nconst { layout } = spacing\nconst { label: labelHeight } = semantic.size\n\n/**\n * Category color options for CategoryLabel\n */\nexport type CategoryColor = \n | 'blue' \n | 'purple' \n | 'pink' \n | 'yellow' \n | 'green' \n | 'red' \n | 'orange' \n | 'gray'\n\n/**\n * Visual variant options for CategoryLabel\n */\nexport type CategoryVariant = 'filled' | 'outlined' | 'minimal'\n\n/**\n * Size options for CategoryLabel: medium (24px) or large (32px), on the decision 0018 scale\n */\nexport type CategoryLabelSize = 'medium' | 'large'\n\n/**\n * Props for the CategoryLabel component\n */\nexport interface CategoryLabelProps {\n /**\n * The category text to display\n */\n children: ReactNode\n \n /**\n * Color scheme for the label\n * @default 'blue'\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 -subtle fill (outlined and minimal), at least 4.5:1 (#115)\nconst categoryText: Record<CategoryColor, string> = {\n blue: category['blue-text'],\n purple: category['purple-text'],\n pink: category['pink-text'],\n yellow: category['yellow-text'],\n green: category['green-text'],\n red: category['red-text'],\n orange: category['orange-text'],\n gray: category['gray-text']\n}\n\ninterface StyledLabelProps {\n $color: CategoryColor\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.circle};\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 ? `${layout.xs} ${layout.sm}` \n : `${layout.sm} ${layout.md}`\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: ${layout.xs};\n \n /* Variant + Color styles */\n background-color: ${({ $color, $variant }) => {\n if ($variant === 'filled') {\n return category[`${$color}-emphasis` as keyof typeof category]\n }\n if ($variant === 'outlined') {\n return 'transparent'\n }\n // minimal\n return category[`${$color}-subtle` 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 8 category colours, 3 visual variants and an optional icon.\n * Category colours carry no status meaning; for status use StatusLabel.\n *\n * @example\n * ```tsx\n * <CategoryLabel color=\"orange\" icon=\"creditCard\">\n * Shopping\n * </CategoryLabel>\n *\n * <CategoryLabel color=\"blue\" variant=\"outlined\" size=\"medium\">\n * Travel\n * </CategoryLabel>\n * ```\n */\nexport const CategoryLabel: React.FC<CategoryLabelProps> = ({\n children,\n color = 'blue',\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={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 '../../../../styles/tokens.json'\nimport { ChipVariant, BaseChipProps } from './types'\n\nconst { component: { chip } } = tokens\n\ninterface StyledChipProps {\n $variant: ChipVariant\n $size: BaseChipProps['size']\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 { background, text } = tokens.semantic.color\n const interactiveStates = $clickable\n return `\n background-color: ${background['interactive-subtle']};\n color: ${text.interactive};\n \n &:hover {\n background-color: ${interactiveStates ? background['interactive-subtle-hover'] : background['interactive-subtle']};\n color: ${interactiveStates ? text['interactive-hover'] : text.interactive};\n }\n \n &:active {\n background-color: ${interactiveStates ? background['interactive-subtle-active'] : background['interactive-subtle']};\n color: ${interactiveStates ? text['interactive-active'] : text.interactive};\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// Helper function to get size styles matching Button's approach\nexport const getSizeStyles = ({ $size }: StyledChipProps) => {\n switch ($size) {\n case 'small':\n return `\n font: ${chip.sizes.small.font};\n // Off-grid 2px: keeps the deprecated token until #129 (decision 0022)\n padding: ${chip.sizes.small.padding};\n `\n case 'medium':\n default:\n return `\n font: ${chip.sizes.medium.font};\n padding: ${chip.sizes.medium.padding};\n `\n }\n}\n\n","import styled from 'styled-components'\nimport tokens from '../../../../styles/tokens.json'\nimport { InternalStyledProps } from './types'\nimport { getVariantStyles, getSizeStyles } from './utils'\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.hover};\n cursor: ${props => props.$disabled ? 'not-allowed' : (props.$clickable ? 'pointer' : 'default')};\n \n ${getVariantStyles}\n ${getSizeStyles}\n \n &:focus-visible {\n outline: ${chip.focus.outline};\n outline-offset: ${semantic.border.focusOffset};\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.spacing.layout.xs};\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.spacing.layout.sm};\n background: transparent;\n border: none;\n width: ${chip.closeButton.size};\n height: ${chip.closeButton.size};\n padding: ${tokens.semantic.spacing.layout.none};\n border-radius: ${tokens.semantic.border.radius.xs};\n cursor: ${props => props.$disabled ? 'not-allowed' : 'pointer'};\n color: inherit;\n transition: ${semantic.motion.hover};\n \n &:hover:not(:disabled) {\n background-color: ${tokens.semantic.color.background['hover-overlay']};\n }\n \n &:active:not(:disabled) {\n background-color: ${tokens.semantic.color.background['active-overlay']};\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 size = 'medium',\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 $size={size}\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 size = 'medium',\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 $size={size}\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 size = 'medium',\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 $size={size}\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 { breakpoints, media } from '../../../lib/styleUtils'\nimport tokens from '@/styles/tokens.json'\n\nconst { semantic: { spacing } } = 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: ${spacing.layout['2xl']};\n padding-right: ${spacing.layout['2xl']};\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 from 'styled-components'\nimport tokens from '@/styles/tokens.json'\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\nconst ImageLink = styled.a`\n display: block;\n cursor: pointer;\n transition: opacity ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeInOut};\n \n &:hover {\n opacity: 0.8;\n }\n`\n\nconst ImageButton = styled.button`\n border: none;\n background: none;\n padding: 0;\n cursor: pointer;\n display: block;\n width: 100%;\n transition: opacity ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeInOut};\n \n &:hover {\n opacity: 0.8;\n }\n`\n\nconst StyledImage = styled.img`\n width: 100%;\n height: auto;\n border-radius: ${tokens.semantic.border.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 '@/styles/tokens.json'\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.subdued};\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 '@/styles/tokens.json'\n\nconst { semantic: { motion, border, spacing }, component: { iconButton, button } } = tokens\n\n// Padding comes from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst padding = {\n small: spacing.component.xs,\n medium: spacing.component.sm,\n large: spacing.component.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.hover};\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 /* Size-specific dimensions from component tokens */\n min-width: ${({ $size }) => iconButton.sizes[$size].minWidth};\n min-height: ${({ $size }) => iconButton.sizes[$size].minHeight};\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\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 { Icon, type IconProps } from '../Icon'\nimport tokens from '@/styles/tokens.json'\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 gap: 0.25rem;\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// Map size to Icon size for consistent visual alignment\nconst sizeToIconSize: Record<MoneyDisplaySize, IconProps['size']> = {\n small: 'xs',\n medium: 'sm',\n large: 'md',\n xlarge: 'lg'\n}\n\n/**\n * Generates aria-label with spelled out amount\n */\nconst generateAriaLabel = (amount: number, currency: string, locale: string): string => {\n const formatter = new Intl.NumberFormat(locale, {\n style: 'currency',\n currency: currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n \n // Get parts to spell out the amount\n const parts = formatter.formatToParts(Math.abs(amount))\n const integerPart = parts.find(p => p.type === 'integer')?.value || '0'\n const fractionPart = parts.find(p => p.type === 'fraction')?.value || '00'\n \n const sign = amount < 0 ? 'negative ' : ''\n return `${sign}${integerPart} dollars and ${fractionPart} cents`\n}\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 // Determine if we need to show a sign icon\n const showPositiveIcon = (showSign && amount > 0) || variant === 'positive'\n const showNegativeIcon = amount < 0 || variant === 'negative'\n \n // Generate accessibility label\n const ariaLabel = generateAriaLabel(amount, currency, locale)\n \n // Get typography variant and icon size\n const typographyVariant = sizeToTypographyVariant[size]\n const iconSize = sizeToIconSize[size]\n \n // Determine icon color based on variant\n const iconColor: IconProps['iconColor'] = \n variant === 'positive' || showPositiveIcon ? 'success' :\n variant === 'negative' || showNegativeIcon ? 'error' :\n variant === 'neutral' ? 'subdued' :\n 'default'\n \n // Amount always uses default color (except neutral which stays subdued)\n const amountColor: TypographyColor = variant === 'neutral' ? 'subdued' : 'default'\n \n return (\n <StyledWrapper \n $align={align} \n $weight={weight}\n aria-label={ariaLabel}\n data-testid={dataTestId}\n >\n {showPositiveIcon && !showNegativeIcon && (\n // The amount is shown without a sign, so the icon is the sign and needs a name (#85)\n <Icon name=\"addRing\" size={iconSize} iconColor={iconColor} aria-label=\"Plus\" />\n )}\n {showNegativeIcon && (\n <Icon name=\"remove\" size={iconSize} iconColor={iconColor} aria-label=\"Minus\" />\n )}\n <Typography\n variant={typographyVariant}\n color={amountColor}\n as=\"span\"\n >\n {formattedAmount}\n </Typography>\n </StyledWrapper>\n )\n}\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport tokens from '../../../styles/tokens.json'\nimport { reducedMotion } from '../../../lib/styleUtils'\n\n// Destructure tokens\nconst { semantic } = tokens\nconst { color, border, motion, component } = { ...semantic, component: tokens.component }\nconst { radius } = border\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 /** Color variant for the progress bar */\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: ${color.background.disabled};\n border-radius: ${radius.xs};\n overflow: hidden;\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: ${motion.transition.normal};\n\n ${reducedMotion} {\n transition: none;\n }\n\n ${props => {\n let backgroundColor\n switch (props.$color) {\n case 'success':\n backgroundColor = color.background.success\n break\n case 'error':\n backgroundColor = color.background.error\n break\n case 'default':\n default:\n backgroundColor = color.background.interactive\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 '@/styles/tokens.json'\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 { separator: separatorSpacing } = tokens.semantic.spacing\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: ${separatorSpacing.md} 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 ${separatorSpacing.sm};`\n case 'medium':\n return `margin: 0 ${separatorSpacing.md};`\n case 'xlarge':\n return `margin: 0 ${separatorSpacing.xl};`\n case 'large':\n default:\n return `margin: 0 ${separatorSpacing.lg};`\n }\n }\n \n // Horizontal orientation uses vertical margins (top/bottom)\n switch ($size) {\n case 'small':\n return `margin: ${separatorSpacing.sm} 0;`\n case 'medium':\n return `margin: ${separatorSpacing.md} 0;`\n case 'xlarge':\n return `margin: ${separatorSpacing.xl} 0;`\n case 'large':\n default:\n return `margin: ${separatorSpacing.lg} 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 '@/styles/tokens.json'\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// Helper function to convert gap prop to CSS value\nconst getGapValue = (gap: StackGap): string => {\n // Get semantic layout spacing token\n const semanticSpacing = tokens.semantic.spacing.layout as Record<string, string>\n \n if (gap in semanticSpacing) {\n return semanticSpacing[gap as keyof typeof semanticSpacing]\n }\n \n // Fallback to medium layout spacing if token not found\n return tokens.semantic.spacing.layout.md\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","import React from 'react'\nimport styled, { keyframes } from 'styled-components'\nimport { Icon } from '../Icon/Icon'\nimport type { IconName } from '../../../types/icons'\nimport { reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\nimport tokens from '@/styles/tokens.json'\n\n// Destructure tokens for cleaner access\nconst { status: statusColors } = tokens.semantic.color\nconst { layout: spacing } = tokens.semantic.spacing\nconst { radius } = tokens.semantic.border\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 const configs: Record<StatusType, { color: string; bgColor: string; icon: IconName; label: string }> = {\n pending: {\n color: statusColors.pending,\n bgColor: statusColors['pending-bg'],\n icon: 'refresh', // Fallback until 'clock' icon is added\n label: 'Pending'\n },\n completed: {\n color: statusColors.completed,\n bgColor: statusColors['completed-bg'],\n icon: 'check',\n label: 'Completed'\n },\n failed: {\n color: statusColors.failed,\n bgColor: statusColors['failed-bg'],\n icon: 'close',\n label: 'Failed'\n },\n cancelled: {\n color: statusColors.cancelled,\n bgColor: statusColors['cancelled-bg'],\n icon: 'cancel',\n label: 'Cancelled'\n },\n processing: {\n color: statusColors.processing,\n bgColor: statusColors['processing-bg'],\n icon: 'refresh',\n label: 'Processing'\n },\n scheduled: {\n color: statusColors.scheduled,\n bgColor: statusColors['scheduled-bg'],\n icon: 'bell', // Fallback until 'calendar' icon is added\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: `${spacing.xs} ${spacing.sm}`,\n font: label.typography.small,\n gap: spacing.xs,\n iconSize: 'xs' as const\n },\n medium: {\n height: labelHeight.medium,\n padding: `${spacing.xs} ${spacing.sm}`,\n font: label.typography.medium,\n gap: spacing.xs,\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.circle};\n white-space: nowrap;\n user-select: none;\n animation: ${scaleIn} ${duration.normal} ${easing.easeOut};\n transition: ${transition.fast};\n\n /* transition.fast covers all properties, so a size change would animate the label's dimensions */\n ${reducedMotion} {\n animation: none;\n transition: none;\n }\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 icon\n * (decision 0018).\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 {showIcon && (\n <Icon\n name={statusConfig.icon}\n size={sizeStyles.iconSize}\n iconColor=\"inherit\"\n />\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 the icon, so status is never conveyed by colour alone.\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 the icon. 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 an icon with its text, so status is never\n * conveyed by colour alone. Not interactive. Announces changes politely to screen 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 '@/styles/tokens.json'\n\nconst { semantic } = tokens\nconst { color, spacing, border, size } = semantic\nconst { label } = tokens.component.badge\nconst { layout } = spacing\nconst { radius } = border\n\nexport interface TagProps {\n /**\n * Text content to display in the tag\n */\n children: React.ReactNode\n \n /**\n * Visual variant of the tag based on semantic meaning\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 ${layout.sm}` : `${layout.xs} ${layout.sm}`};\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.background['interactive-subtle']\n case 'success':\n return color.background['success-subtle']\n case 'warning':\n return color.background['warning-subtle']\n case 'error':\n return color.background['error-subtle']\n case 'emphasis':\n return color.background.emphasis\n default:\n return color.background.surface\n }\n }};\n \n color: ${({ $variant }) => {\n switch ($variant) {\n case 'interactive':\n return color.text.interactive\n case 'success':\n return color.text.success\n case 'warning':\n return color.text.warning\n case 'error':\n return color.text.error\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.interactive}`\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.error}`\n case 'emphasis':\n return `${semantic.border.width.thin} solid ${color.background.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 { Stack } from '../../atoms/Stack'\nimport { Box } from '../../atoms/Box'\nimport { type IconName } from '../../atoms/Icon'\nimport { Typography } from '../../atoms/Typography'\nimport { MoneyDisplay } from '../../atoms/MoneyDisplay'\nimport { Button } from '../../atoms/Button'\nimport { CategoryLabel, type CategoryColor } from '../../atoms/CategoryLabel'\nimport { Avatar } from '../../atoms/Avatar'\nimport tokens from '../../../styles/tokens.json'\n\n// Destructure tokens for cleaner access\nconst { semantic } = tokens\nconst { spacing } = semantic\nconst { layout } = spacing\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: ${layout.lg};\n`\n\nconst StyledTrendSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${layout.xs};\n`\n\nconst StyledActions = styled.div`\n display: flex;\n gap: ${layout.sm};\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: ${layout.none};\n\n & > span {\n margin-top: -${layout.xs};\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\nconst trendToColor: Record<TrendDirection, CategoryColor> = {\n up: 'green',\n down: 'red',\n neutral: 'blue'\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.normal} ${semantic.motion.easing.easeOut}`}\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 <StyledTrendSection aria-label={`Trend ${trend}`} role=\"img\">\n <CategoryLabel size=\"medium\" icon={trendIcon} color={trendColor} variant=\"minimal\">{trendValue}</CategoryLabel>\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 '@/styles/tokens.json'\nimport { Icon } from '../../atoms/Icon'\nimport { Typography } from '../../atoms/Typography'\nimport { 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.error};\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.spacing.layout.md};\n padding: ${({ $spacing }) =>\n $spacing === 'compact'\n ? `${semantic.spacing.layout.sm} ${semantic.spacing.layout.md}`\n : `${semantic.spacing.layout.md} ${semantic.spacing.layout.lg}`};\n border-radius: ${semantic.border.radius.sm};\n background-color: ${({ $selected }) =>\n $selected ? semantic.color.background['interactive-subtle'] : 'transparent'};\n transition: background-color ${duration.fast} ${easing.easeOut};\n cursor: ${({ $interactive, $disabled }) => {\n if ($disabled) return 'not-allowed'\n if ($interactive) return 'pointer'\n return 'default'\n }};\n \n /* Interactive hover states */\n ${({ $interactive, $disabled, $selected }) => !$disabled && $interactive && `\n &:hover {\n background-color: ${\n $selected \n ? tokens.component.button.variants.secondary.backgroundColor\n : tokens.component.button.variants.secondary.backgroundColor\n };\n }\n \n &:active {\n background-color: ${tokens.component.button.variants.naked.backgroundColor};\n }\n `}\n \n /* Focus visible */\n &:focus-visible {\n outline: ${semantic.border.width.thick} solid ${semantic.color.border.interactive};\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.spacing.layout.xs};\n min-width: 0; /* Allow text truncation */\n`\n\nconst StyledRightContent = styled.div`\n display: flex;\n align-items: center;\n gap: ${semantic.spacing.layout.sm};\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.subdued};\n transition: transform ${duration.fast} ${easing.easeOut};\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.normal} ${easing.easeOut},\n padding ${duration.normal} ${easing.easeOut},\n opacity ${duration.normal} ${easing.easeOut},\n visibility ${duration.normal} ${easing.easeOut};\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.normal} ${easing.easeOut},\n visibility ${duration.normal} ${easing.easeOut};\n }\n \n ${({ $expanded, $spacing }) => $expanded && `\n padding: ${\n $spacing === 'compact'\n ? `${semantic.spacing.layout.sm} ${semantic.spacing.layout.md} ${semantic.spacing.layout.sm} ${tokens.component.listItem.expandedIndent.compact}`\n : `${semantic.spacing.layout.sm} ${semantic.spacing.layout.lg} ${semantic.spacing.layout.md} ${tokens.component.listItem.expandedIndent.comfortable}`\n };\n background-color: ${semantic.color.background['subtle']};\n border-radius: ${semantic.border.radius.sm};\n margin: 0 ${\n $spacing === 'compact' \n ? semantic.spacing.layout.md \n : semantic.spacing.layout.lg\n } ${\n $spacing === 'compact'\n ? semantic.spacing.layout.sm\n : semantic.spacing.layout.md\n };\n `}\n`\n\nexport const ListItem = ({\n primary,\n secondary,\n badge,\n icon,\n expandable = false,\n expanded = false,\n onToggle,\n interactive = false,\n onClick,\n disabled = false,\n selected = false,\n destructive = false,\n spacing: spacingProp,\n children,\n className,\n 'data-testid': dataTestId,\n role: customRole,\n 'aria-selected': ariaSelected,\n id,\n tabIndex: customTabIndex,\n onKeyDown: customOnKeyDown,\n ...props\n}: ListItemProps) => {\n const listSpacing = useContext(ListSpacingContext)\n const spacing = spacingProp ?? listSpacing\n const isInteractive = interactive || expandable || customRole === 'option'\n const contentRole = customRole === 'option' ? undefined : (isInteractive ? 'button' : undefined)\n const ariaExpanded = expandable ? expanded : undefined\n const ariaDisabled = disabled ? true : undefined\n const ariaCurrent = selected ? 'true' : undefined\n \n const handleClick = () => {\n if (disabled) return\n \n if (expandable && onToggle) {\n onToggle()\n } else if (onClick) {\n onClick()\n }\n }\n \n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (customOnKeyDown) {\n customOnKeyDown(event)\n return\n }\n \n if (disabled) return\n \n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n handleClick()\n }\n }\n \n return (\n // The List's spacing is for its own items: reset it for this item's content, so components\n // built on ListItem (ActionSheet, even through its portal) and expanded content keep their own\n // density. A nested List provides its own spacing (#77)\n <ListSpacingContext.Provider value=\"comfortable\">\n <StyledListItem\n $interactive={isInteractive}\n $disabled={disabled}\n $selected={selected}\n $destructive={destructive}\n $spacing={spacing}\n className={className}\n data-testid={dataTestId}\n role={customRole || 'listitem'}\n id={id}\n aria-selected={ariaSelected}\n {...props}\n >\n <StyledItemContent\n $interactive={isInteractive}\n $disabled={disabled}\n $selected={selected}\n $destructive={destructive}\n $spacing={spacing}\n role={contentRole}\n aria-expanded={ariaExpanded}\n aria-disabled={ariaDisabled}\n aria-current={ariaCurrent}\n tabIndex={customTabIndex !== undefined ? customTabIndex : (isInteractive && !disabled ? 0 : undefined)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {icon && (\n <StyledIconContainer aria-hidden=\"true\">\n {icon}\n </StyledIconContainer>\n )}\n \n <StyledTextContent>\n <Typography variant=\"body\" color={destructive ? 'error' : 'default'}>\n {primary}\n </Typography>\n {secondary && (\n <Typography variant=\"small\" color=\"subdued\">\n {secondary}\n </Typography>\n )}\n </StyledTextContent>\n \n <StyledRightContent>\n {badge}\n {expandable && (\n <StyledChevronIcon $expanded={expanded} aria-hidden=\"true\">\n <Icon name=\"caretDown\" size=\"sm\" />\n </StyledChevronIcon>\n )}\n </StyledRightContent>\n </StyledItemContent>\n \n {expandable && children && (\n <StyledExpandedContent\n $spacing={spacing}\n $expanded={expanded}\n aria-hidden={!expanded}\n >\n {children}\n </StyledExpandedContent>\n )}\n </StyledListItem>\n </ListSpacingContext.Provider>\n )\n}\n\nListItem.displayName = 'ListItem'\n","import { useEffect, useState, type RefObject } from 'react'\nimport tokens from '../styles/tokens.json'\n\n// How long an exiting element stays mounted: the duration of `exitAnimation` in styleUtils.\nexport const EXIT_DURATION_MS = parseInt(tokens.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 '@/styles/tokens.json'\nimport { exitAnimation, reducedMotion } from '../../../lib/styleUtils'\nimport { useInert, usePresence } from '../../../lib/usePresence'\n\nconst { \n semantic: { \n color, \n border, \n spacing: { layout }, \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: ${color.background.overlay};\n z-index: ${tokens.semantic.zIndex.modal};\n animation: ${fadeIn} ${motion.duration.normal} ${motion.easing.easeOut}${({ $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: ${color.background.subtle};\n border-top-left-radius: ${border.radius.lg};\n border-top-right-radius: ${border.radius.lg};\n box-shadow: ${elevation.overlay};\n max-height: 90vh;\n overflow-y: auto;\n z-index: ${tokens.semantic.zIndex.modal};\n animation: ${slideUp} ${motion.duration.slow} ${motion.easing.easeOut}${({ $isExiting }) => $isExiting && exitAnimation};\n\n ${reducedMotion} {\n animation: ${fadeIn} ${motion.duration.slow} ${motion.easing.easeOut}${({ $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: ${layout.lg} ${layout.lg} ${layout.md};\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: ${layout.sm};\n border: none;\n background: transparent;\n color: ${color.icon.subdued};\n cursor: pointer;\n border-radius: ${border.radius.sm};\n transition: ${motion.hover};\n margin-left: ${layout.sm};\n \n &:hover {\n color: ${color.icon.default};\n background-color: ${color.background.surface};\n }\n \n &:focus-visible {\n outline: ${border.focus};\n outline-offset: ${layout.xs};\n }\n`\n\nconst StyledActionsList = styled.ul`\n padding: ${layout.sm} ${layout.md};\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\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 KeyboardEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useId,\n} from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport { IconButton } from '../../atoms/IconButton'\nimport { Typography } from '../../atoms/Typography'\nimport { visuallyHidden } from '../../../lib/styleUtils'\nimport tokens from '@/styles/tokens.json'\nimport {\n AgentInputSubmitSource,\n AgentInputVoiceError,\n AgentInputVoiceErrorCode,\n SpeechRecognitionLike,\n defaultVoiceErrorMessage,\n detectSpeechRecognitionConstructor,\n mapSpeechErrorCode,\n normalizeTranscript,\n} from './agentInputSpeech'\nimport { AgentInputMachineState, agentInputStateTransition } from './agentInputStateMachine'\n\nconst { semantic, component } = tokens\n\nconst DEFAULT_IDLE_HELPER = 'Ask about transactions, spending, or transfers'\nconst DEFAULT_LISTENING_MESSAGE = 'Listening… speak now'\nconst DEFAULT_PROCESSING_MESSAGE = 'Finishing voice input…'\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 onSubmit: (payload: SubmitPayload) => void | Promise<void>\n\n placeholder?: string\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 statusMessage?: string\n errorMessage?: string\n label?: string\n 'data-testid'?: string\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`\n display: flex;\n flex-direction: column;\n gap: ${semantic.spacing.layout.sm};\n width: 100%;\n`\n\nconst ControlsRow = styled.div`\n width: 100%;\n`\n\nconst InputShell = styled.div`\n display: flex;\n align-items: center;\n gap: ${semantic.spacing.layout.sm};\n width: 100%;\n padding: ${semantic.spacing.layout.xs} ${semantic.spacing.layout.sm} ${semantic.spacing.layout.xs} ${semantic.spacing.component.lg};\n background-color: ${component.input.default.backgroundColor};\n border: ${component.input.default.borderWidth} solid ${component.input.default.borderColor};\n border-radius: ${semantic.border.radius['3xl']};\n box-shadow: ${semantic.elevation.raised};\n transition: border-color ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}, outline ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut};\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\nconst Input = styled.input`\n flex: 1;\n min-width: 0;\n min-height: ${semantic.spacing.layout['7xl']};\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.spacing.layout.sm};\n`\n\nconst CircularActionIconButton = styled(IconButton)`\n border-radius: ${semantic.border.radius.circle};\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.border.radius.circle};\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(-${semantic.spacing.layout.xs} - ${semantic.border.focusOffset});\n border-radius: ${semantic.border.radius.circle};\n pointer-events: none;\n z-index: 0;\n background: conic-gradient(\n from 0deg,\n ${semantic.color.background['interactive-subtle']} 0deg,\n ${semantic.color.background.interactive} 110deg,\n ${semantic.color.background['interactive-hover']} 210deg,\n ${semantic.color.background.interactive} 300deg,\n ${semantic.color.background['interactive-subtle']} 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\nconst StatusRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ${semantic.spacing.layout.md};\n min-height: ${semantic.spacing.layout['2xl']};\n`\n\nconst StatusText = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $isError: boolean }>`\n padding-left: ${semantic.spacing.layout.xl};\n`\n\nconst StatusAnnouncement = styled.div``\n\nconst MeterContainer = styled.div`\n display: inline-flex;\n align-items: flex-end;\n gap: ${semantic.spacing.layout.xs};\n height: ${semantic.spacing.layout.lg};\n`\n\nconst MeterBar = styled.div.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<{ $height: number }>`\n width: ${semantic.spacing.layout.xs};\n border-radius: ${semantic.border.radius.xs};\n background-color: ${semantic.color.background.interactive};\n height: ${({ $height }) => `${$height * 100}%`};\n transition: height ${semantic.motion.duration.fast} ${semantic.motion.easing.easeOut};\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\nexport const AgentInput = ({\n value,\n defaultValue = '',\n onChange,\n onSubmit,\n placeholder = 'Ask a question',\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 statusMessage,\n errorMessage,\n label = 'Agent input',\n 'data-testid': dataTestId,\n}: AgentInputProps) => {\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 inputId = useId()\n const statusId = `${inputId}-status`\n\n const currentValue = isControlled ? value ?? '' : internalValue\n const hasText = normalizeTranscript(currentValue).length > 0\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 = normalizeTranscript(rawText)\n if (!text || disabled || effectiveSubmitting) {\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 updateValue('')\n } catch {\n updateMachineState({ type: 'SUBMIT_ERROR' })\n if (source === 'voice-final') {\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, 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 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 normalizeTranscript([currentValue, interimTranscript].filter(Boolean).join(' '))\n }, [currentValue, interimTranscript])\n\n const onTextChange = (event: ChangeEvent<HTMLInputElement>) => {\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<HTMLInputElement>) => {\n if (event.key === 'Escape' && isListening) {\n event.preventDefault()\n await stopListening(true)\n return\n }\n\n if (event.key === 'Enter') {\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 || DEFAULT_IDLE_HELPER,\n typing: statusMessage || DEFAULT_IDLE_HELPER,\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 || DEFAULT_IDLE_HELPER,\n }\n\n const unsupportedMessage = defaultVoiceErrorMessage('not-supported')\n const shouldShowUnsupported = enableVoice && !hasVoice\n const resolvedStatus = shouldShowUnsupported ? unsupportedMessage : statusByState[effectiveState]\n const isStatusError = effectiveState === 'error' || shouldShowUnsupported\n const meterBars = createMeterBars(meterLevel)\n const sendDisabled = disabled || effectiveSubmitting || normalizeTranscript(currentValue).length === 0\n\n return (\n <Container data-testid={dataTestId}>\n <VisuallyHiddenLabel htmlFor={inputId}>\n {label}\n </VisuallyHiddenLabel>\n <ControlsRow>\n <InputWrapper>\n <InputShell data-disabled={disabled || effectiveSubmitting}>\n <Input\n id={inputId}\n type=\"text\"\n aria-label={label}\n value={displayedValue}\n onChange={onTextChange}\n onKeyDown={onInputKeyDown}\n placeholder={placeholder}\n disabled={disabled || effectiveSubmitting}\n readOnly={isListening}\n aria-describedby={statusId}\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 <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 </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 <Typography variant=\"small\" color={isStatusError ? 'error' : 'subdued'}>\n {resolvedStatus}\n </Typography>\n </StatusAnnouncement>\n </StatusText>\n\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 </StatusRow>\n </Container>\n )\n}\n","import React from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport tokens 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).\nconst FADE_MS = parseInt(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 (crossCircle icon)\n * - warning: Cautions, potential issues (bell icon)\n * - info: Tips, helper text, neutral information (info icon)\n * - success: Confirmations, successful operations (checkRing icon)\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\nconst variantIcons: Record<string, IconName> = {\n error: 'crossCircle',\n warning: 'bell',\n info: 'info',\n success: 'checkRing'\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.spacing.layout.sm : semantic.spacing.layout.md};\n padding: ${({ $inline }) =>\n $inline ? semantic.spacing.layout.sm : semantic.spacing.layout.md};\n border-radius: ${semantic.border.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.spacing.layout.sm\n : semantic.spacing.layout.lg};\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.easeOut} forwards`\n : css`${fadeThenCollapse} ${EXIT_MS}ms ${easing.easeOut} 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.spacing.layout.xs};\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.spacing.layout.sm};\n margin-top: calc(${semantic.spacing.layout.md} - ${semantic.spacing.layout.xs});\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((${tokens.component.iconButton.sizes.small.minWidth} - ${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 '@/styles/tokens.json'\nimport { Icon } from '../../atoms/Icon'\nimport type { IconName } from '../../../types/icons'\n\nconst { semantic } = tokens\nconst { color, typography, spacing, 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\nconst variantIcons: Record<InlineAlertVariant, IconName> = {\n error: 'crossCircle',\n warning: 'bell',\n info: 'info',\n success: 'checkRing'\n}\n\nconst variantTextColors: Record<InlineAlertVariant, string> = {\n error: color.text.error,\n warning: color.text.warning,\n info: color.text.interactive,\n success: color.text.success\n}\n\nconst sizeConfig = {\n small: { font: typography.caption, gap: spacing.layout.xs, icon: 'xs' as const },\n medium: { font: typography.small, gap: spacing.layout.sm, 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 <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 '@/styles/tokens.json'\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.spacing.layout.sm};\n padding: ${tokens.semantic.spacing.layout.sm};\n\n &:last-of-type a {\n text-decoration: none;\n color: ${tokens.semantic.color.text.subdued};\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 '@/styles/tokens.json'\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\nconst CardSmallStyled = styled.div`\n a {\n text-decoration: none;\n }\n\n img {\n border-radius: ${tokens.semantic.border.radius.sm};\n transition: opacity ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeOut};\n width: 100%;\n height: auto;\n display: block;\n }\n\n &:hover {\n img {\n opacity: 0.8;\n }\n }\n\n &:focus-within {\n outline: none;\n box-shadow: 0 0 0 ${tokens.semantic.border.width.thick} ${tokens.semantic.color.border.strong};\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 '@/styles/tokens.json'\n\nconst { semantic: { border } } = tokens\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 &:hover {\n img {\n opacity: 0.8;\n }\n }\n\n img {\n border-radius: ${border.radius['2xl']};\n transition: opacity ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeOut};\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 '@/styles/tokens.json'\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.background.inverse\n : tokens.component.input.default.backgroundColor};\n border-color: ${(props) => {\n if (props.$state === 'error') return tokens.component.input.error.borderColor\n if (props.$checked || props.$indeterminate)\n return tokens.semantic.color.border.strong\n return tokens.component.input.default.borderColor\n }};\n cursor: ${(props) => (props.$state === 'disabled' ? 'not-allowed' : 'pointer')};\n transition: all ${tokens.semantic.motion.duration.fast} ${tokens.semantic.motion.easing.easeOut};\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.border.strong\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\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.spacing.layout.md};\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 '@/styles/tokens.json'\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.spacing.layout.xs};\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.spacing.layout['5xl']}; /* 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 '@/styles/tokens.json'\nimport { reducedMotion, visuallyHidden } from '../../../lib/styleUtils'\n\nconst { semantic: { color, border, spacing, 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: ${color.background.subtle};\n border: ${border.subtle};\n border-radius: ${tokens.semantic.border.radius.sm};\n padding: ${spacing.layout.md};\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: ${spacing.layout.sm} 0;\n position: relative;\n transition: max-height ${motion.duration.slow} ${motion.easing.easeInOut};\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\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: ${spacing.layout.lg};\n right: ${spacing.layout.sm};\n`\n\nconst ExpandButtonWrapper = styled.div<{ $hasGradient: boolean }>`\n display: flex;\n justify-content: center;\n padding: ${spacing.layout.sm} 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: ${spacing.layout.sm};\n border-radius: ${tokens.semantic.border.radius.sm};\n transition: opacity ${motion.duration.slow} ${motion.easing.easeInOut}, background ${motion.duration.slow} ${motion.easing.easeInOut};\n \n ${({ $hasGradient }) => $hasGradient ? `\n margin-top: -${spacing.layout['4xl']};\n padding-top: ${spacing.layout['4xl']};\n background: linear-gradient(\n to bottom,\n transparent 0%,\n ${color.background.subtle} 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 '../../../styles/tokens.json'\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.spacing.layout.md} ${tokens.semantic.spacing.layout.sm};\n background-color: ${tokens.semantic.color.background.default};\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.zIndex.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.spacing.layout.sm};\n`\n\nconst StyledRightSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.spacing.layout.md};\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 '@/styles/tokens.json'\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.spacing.layout['4xl'] :\n $size === 'large' ? semantic.spacing.layout['8xl'] :\n semantic.spacing.layout['6xl']\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.spacing.layout['2xl']};\n color: ${({ $variant }) =>\n $variant === 'error' ? semantic.color.icon.error :\n $variant === 'success' ? semantic.color.icon.success :\n semantic.color.icon.subdued\n };\n`\n\nconst StyledTextContainer = styled.div`\n max-width: ${tokens.component.emptyState.text.maxWidth};\n margin-bottom: ${semantic.spacing.layout['2xl']};\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.spacing.layout.md }}>\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 '@/styles/tokens.json'\n\nconst { semantic: { spacing: { layout: spacing }, border } } = 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: ${spacing['7xl']};\n }\n\n img {\n border-radius: ${border.radius['2xl']};\n transition: opacity ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeOut};\n\n &:hover {\n opacity: 0.8;\n }\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: ${spacing['2xl']};\n\n @media (min-width: ${tokens.semantic.breakpoint.lg}) {\n grid-column: span 6;\n margin-top: 0;\n padding-right: ${spacing['4xl']};\n }\n\n @media (min-width: ${tokens.semantic.breakpoint.xl}) {\n padding-right: ${spacing['11xl']};\n }\n`\n\nconst ButtonWrapper = styled.div`\n button {\n margin-top: ${spacing.lg};\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 '@/styles/tokens.json'\nimport { Icon } from '../../atoms/Icon'\nimport { Typography } from '../../atoms/Typography'\nimport { reducedMotion } from '../../../lib/styleUtils'\n\nconst { semantic: { color, border, zIndex, elevation, motion, spacing: { layout: spacing } }, component: { input, field } } = tokens\n\n// Spacing comes from the semantic scales: no component spacing tokens (decision 0022).\n// The 11px vertical padding is off-grid and keeps its deprecated token until #129.\nconst controlPaddingX = tokens.semantic.spacing.component.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 padding: ${input.default.paddingY} ${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.normal} ${easing.easeInOut},\n outline ${duration.normal} ${easing.easeInOut};\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: ${spacing.sm};\n transition: transform ${duration.fast} ${easing.easeOut};\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: ${zIndex.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.subtle};\n border-radius: ${input.default.borderRadius};\n box-shadow: ${elevation.floating};\n margin-top: ${spacing.xs};\n overflow: hidden;\n opacity: ${({ $isOpen }) => ($isOpen ? 1 : 0)};\n visibility: ${({ $isOpen }) => ($isOpen ? 'visible' : 'hidden')};\n transform: ${({ $isOpen }) => ($isOpen ? 'translateY(0)' : `translateY(-${spacing.sm})`)};\n transition: all ${duration.fast} ${easing.easeOut};\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: block;\n padding: ${input.default.paddingY} ${controlPaddingX};\n background-color: ${({ $isSelected, $isFocused }) => {\n if ($isFocused) return color.background.surface\n if ($isSelected) return color.background.surface\n return 'transparent'\n }};\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.easeOut};\n \n &:hover {\n background-color: ${color.background.surface};\n }\n \n &:focus {\n outline: none;\n background-color: ${color.background.surface};\n }\n \n &:not(:last-child) {\n border-bottom: ${border.subtle};\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: ${spacing.sm};\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: spacing.sm }}>\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 </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 '@/styles/tokens.json'\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 '@/styles/tokens.json'\nimport { exitAnimation, reducedMotion } from '../../../lib/styleUtils'\nimport { useInert, usePresence } from '../../../lib/usePresence'\n\nconst { semantic } = tokens\nconst { spacing: { layout }, color, border, 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: ${color.background.overlay};\n z-index: ${semantic.zIndex.modal};\n ${css<{ $isExiting: boolean }>`animation: ${fadeIn} ${motion.duration.normal} ${motion.easing.easeOut}${({ $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.zIndex.modal};\n\n width: ${({ $width }) => $width};\n max-width: calc(100vw - ${layout.lg} * 2);\n max-height: calc(100vh - ${layout.lg} * 2);\n\n display: flex;\n flex-direction: column;\n\n background-color: ${color.background.subtle};\n border-radius: ${border.radius.xl};\n box-shadow: ${elevation.overlay};\n overflow: hidden;\n\n ${css<{ $isExiting: boolean }>`animation: ${scaleIn} ${motion.duration.normal} ${motion.easing.easeOut}${({ $isExiting }) => $isExiting && exitAnimation};`}\n\n ${reducedMotion} {\n animation: ${fadeIn} ${motion.duration.normal} ${motion.easing.easeOut}${({ $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.normal} ${motion.easing.easeOut}${({ $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: ${layout.lg} ${layout.lg} 0;\n flex-shrink: 0;\n`\n\nconst StyledBody = styled.div`\n flex: 1 1 auto;\n overflow-y: auto;\n padding: ${layout.md} ${layout.lg};\n\n /* Scrollbar styling */\n &::-webkit-scrollbar {\n width: ${semantic.spacing.layout.sm};\n }\n &::-webkit-scrollbar-track {\n background: ${color.background.surface};\n }\n &::-webkit-scrollbar-thumb {\n background: ${color.border.default};\n border-radius: ${border.radius.circle};\n }\n &::-webkit-scrollbar-thumb:hover {\n background: ${color.border.strong};\n }\n`\n\nconst StyledFooter = styled.div`\n display: flex;\n justify-content: flex-end;\n gap: ${layout.sm};\n padding: 0 ${layout.lg} ${layout.lg};\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 from 'styled-components'\nimport tokens from '@/styles/tokens.json'\n\nconst { component: { input }, semantic } = tokens\n\n// Spacing comes from the semantic scales: no component spacing tokens (decision 0022).\n// The 11px vertical padding is off-grid and keeps its deprecated token until #129.\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\nexport const StyledInputBase = styled.input.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<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 width: 100%;\n padding: ${input.default.paddingY} ${semantic.spacing.component.lg};\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.normal} ${tokens.semantic.motion.easing.easeInOut},\n outline ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeInOut};\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\n/**\n * Base styled textarea with shared styling\n */\nexport const StyledTextAreaBase = styled.textarea.withConfig({\n shouldForwardProp: (prop) => !prop.startsWith('$')\n})<StyledInputBaseProps>`\n /* Inherit all input base styles */\n ${StyledInputBase}\n \n /* TextArea specific */\n min-height: ${tokens.component.input.textarea.minHeight};\n resize: vertical;\n font-family: inherit;\n line-height: ${tokens.semantic.lineHeight.normal};\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 '@/styles/tokens.json'\n\nconst { field } = tokens.component\n// Gaps come from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst { layout: gap } = tokens.semantic.spacing\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: ${gap.sm};\n width: 100%;\n`\n\nconst StyledLabel = styled.label`\n display: flex;\n align-items: center;\n gap: ${gap.xs};\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.spacing.layout['6xl']};\n`\n\nconst StyledStepperContainer = styled.div`\n position: absolute;\n right: ${tokens.semantic.spacing.layout.sm};\n display: flex;\n flex-direction: row;\n gap: ${tokens.semantic.spacing.layout.sm};\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 '@/styles/tokens.json'\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.spacing.layout['2xl']};\n margin-top: ${({ $hasBackButton }) => $hasBackButton ? tokens.semantic.spacing.layout.none : tokens.semantic.spacing.layout['7xl']};\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 '@/styles/tokens.json'\n\nconst { field } = tokens.component\n// Gaps come from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst { layout: gap } = tokens.semantic.spacing\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: ${gap.sm};\n width: 100%;\n`\n\nconst StyledLabel = styled.label`\n display: flex;\n align-items: center;\n gap: ${gap.xs};\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.spacing.layout.sm};\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 '@/styles/tokens.json'\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.spacing.layout.sm};\n padding: ${semantic.spacing.layout.sm} ${semantic.spacing.layout.md};\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.normal} ${semantic.motion.easing.easeInOut}, outline ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut};\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.spacing.layout.xs});\n left: 0;\n right: 0;\n max-height: ${tokens.semantic.size.menu.maxHeight};\n overflow-y: auto;\n background-color: ${semantic.color.background.subtle};\n border: ${semantic.border.width.thin} solid ${semantic.color.border.default};\n border-radius: ${semantic.border.radius.md};\n box-shadow: ${semantic.elevation.floating};\n list-style: none;\n padding: ${semantic.spacing.layout.xs} 0;\n margin: 0;\n z-index: ${semantic.zIndex.dropdown};\n`\n\nconst StyledSectionHeader = styled.div`\n padding: ${semantic.spacing.layout.sm} ${semantic.spacing.layout.md};\n font: ${tokens.component.searchField.sectionHeader.typography};\n color: ${semantic.color.text.subdued};\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 selected={index === highlightedIndex}\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 '@/styles/tokens.json'\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.color.background.overlay};\n z-index: ${semantic.zIndex.overlay};\n ${css<{ $isExiting: boolean }>`animation: ${fadeIn} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}${({ $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.color.background.default};\n box-shadow: ${semantic.elevation.overlay};\n z-index: ${semantic.zIndex.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.spacing.layout.lg : '0'\n const borderRadius = isDrawer ? semantic.border.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.spacing.layout.lg} * 2` : '0px'});\n border-radius: ${borderRadius} 0 0 ${borderRadius};\n animation: ${slideInRight} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}${({ $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.spacing.layout.lg} * 2` : '0px'});\n border-radius: 0 ${borderRadius} ${borderRadius} 0;\n animation: ${slideInLeft} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}${({ $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.spacing.layout.lg} * 2` : '0px'});\n border-radius: 0 0 ${borderRadius} ${borderRadius};\n animation: ${slideInTop} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}${({ $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.spacing.layout.lg} * 2` : '0px'});\n border-radius: ${borderRadius} ${borderRadius} 0 0;\n animation: ${slideInBottom} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}${({ $isExiting }) => $isExiting && exitAnimation};\n `\n }\n }}\n\n ${reducedMotion} {\n animation: ${fadeIn} ${semantic.motion.duration.normal} ${semantic.motion.easing.easeInOut}${({ $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.spacing.layout.sm};\n }\n \n &::-webkit-scrollbar-track {\n background: ${semantic.color.background.subtle};\n }\n \n &::-webkit-scrollbar-thumb {\n background: ${semantic.color.border.default};\n border-radius: ${semantic.border.radius.circle};\n }\n \n &::-webkit-scrollbar-thumb:hover {\n background: ${semantic.color.border.strong};\n }\n`\n\nconst StyledSheetContent = styled.div`\n padding: ${semantic.spacing.layout['2xl']};\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 '@/styles/tokens.json'\nimport { 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.spacing.layout.lg};\n`\n\nconst StyledSliderTrackContainer = styled.div`\n position: relative;\n width: 100%;\n height: ${semantic.spacing.layout['6xl']};\n display: flex;\n align-items: center;\n`\n\nconst StyledTrack = styled.div<{ $disabled?: boolean }>`\n position: relative;\n width: 100%;\n height: ${semantic.spacing.layout.xs};\n background-color: ${({ $disabled }) =>\n $disabled \n ? semantic.color.background.disabled\n : semantic.color.background.progressTrack\n };\n border-radius: ${semantic.border.radius.circle};\n cursor: ${({ $disabled }) => $disabled ? 'not-allowed' : 'pointer'};\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.background.emphasis\n };\n border-radius: ${semantic.border.radius.circle};\n pointer-events: none;\n`\n\nconst StyledThumb = styled.div<{ \n $disabled?: boolean\n $active?: boolean\n}>`\n position: absolute;\n width: ${semantic.spacing.layout.xl};\n height: ${semantic.spacing.layout.xl};\n top: -${semantic.spacing.layout.sm};\n background-color: ${({ $disabled }) =>\n $disabled\n ? semantic.color.background.disabled\n : semantic.color.background.subtle\n };\n border: ${semantic.border.width.thick} solid ${({ $disabled }) =>\n $disabled\n ? semantic.color.icon.disabled\n : semantic.color.background.emphasis\n };\n border-radius: ${semantic.border.radius.circle};\n cursor: ${({ $disabled }) => $disabled ? 'not-allowed' : 'grab'};\n transform: translateX(-50%);\n transition: ${semantic.motion.transition.fast};\n box-shadow: ${tokens.component.slider.thumb.shadow.default};\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.width.thick} solid ${semantic.color.border.interactive};\n outline-offset: ${semantic.spacing.layout.xs};\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: -${semantic.spacing.layout['4xl']};\n left: ${semantic.spacing.layout.sm};\n transform: translateX(-50%);\n padding: ${semantic.spacing.layout.xs} ${semantic.spacing.layout.sm};\n background-color: ${semantic.color.background.emphasis};\n color: ${semantic.color.text.inverse};\n font: ${semantic.typography.caption};\n border-radius: ${semantic.border.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.spacing.layout.xs} solid transparent;\n border-right: ${semantic.spacing.layout.xs} solid transparent;\n border-top: ${semantic.spacing.layout.xs} solid ${semantic.color.background.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.subdued};\n margin-top: ${semantic.spacing.layout.xs};\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 \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 // Mouse/touch handlers\n const handleTrackClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) 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 handleThumbMouseDown = (thumb: 'single' | 'min' | 'max') => (event: React.MouseEvent) => {\n if (disabled) return\n event.preventDefault()\n setActiveThumb(thumb)\n \n const handleMouseMove = (e: MouseEvent) => {\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 handleMouseUp = () => {\n setActiveThumb(null)\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n }\n \n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\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 style={{ left: `${minPercent}%` }}\n onMouseDown={handleThumbMouseDown('min')}\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 style={{ left: `${maxPercent}%` }}\n onMouseDown={handleThumbMouseDown('max')}\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 onMouseDown={handleThumbMouseDown('single')}\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 '@/styles/tokens.json'\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.subtle};\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.color.background.subtle};\n }\n \n &::-webkit-scrollbar-thumb {\n background: ${semantic.color.border.default};\n border-radius: ${semantic.border.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.spacing.layout.sm};\n padding: ${semantic.spacing.layout.md} ${semantic.spacing.layout.lg};\n font: ${semantic.typography.button2};\n white-space: nowrap;\n cursor: ${props => props.$disabled ? 'not-allowed' : 'pointer'};\n border: none;\n background: transparent;\n transition: ${semantic.motion.hover};\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.border.radius.sm} ${semantic.border.radius.sm} 0 0;\n background-color: ${props => props.$isActive\n ? semantic.color.background['interactive-subtle']\n : 'transparent'\n };\n color: ${props => props.$isActive\n ? semantic.color.text.interactive\n : semantic.color.text.subdued\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.background.interactive\n : 'transparent'\n };\n transition: ${semantic.motion.hover};\n }\n\n &:hover:not(:disabled) {\n background-color: ${props => props.$isActive\n ? semantic.color.background['interactive-subtle-hover']\n : 'transparent'\n };\n color: ${props => props.$isActive\n ? semantic.color.text['interactive-hover']\n : semantic.color.text.default\n };\n }\n\n &:active:not(:disabled) {\n background-color: ${props => props.$isActive\n ? semantic.color.background['interactive-subtle-active']\n : 'transparent'\n };\n color: ${props => props.$isActive\n ? semantic.color.text['interactive-active']\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.width.thick} solid ${semantic.color.border.strong};\n outline-offset: ${semantic.spacing.layout.xs};\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.spacing.layout.xs};\n font: ${tokens.component.tabBar.badge.typography};\n font-weight: ${tokens.component.tabBar.badge.fontWeight};\n border-radius: ${semantic.border.radius.circle};\n background-color: ${semantic.color.background.interactive};\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 '@/styles/tokens.json'\n\nconst { field } = tokens.component\n// Gaps come from the semantic spacing scale: no component spacing tokens (decision 0022)\nconst { layout: gap } = tokens.semantic.spacing\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: ${gap.sm};\n width: 100%;\n`\n\nconst StyledLabel = styled.label`\n display: flex;\n align-items: center;\n gap: ${gap.xs};\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 { Badge } from '../../atoms/Badge'\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 '../../../styles/tokens.json'\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.spacing.layout.md} ${tokens.semantic.spacing.layout.md};\n background-color: ${tokens.semantic.color.background.default};\n border-bottom: ${tokens.semantic.border.width.thin} solid ${tokens.semantic.color.border.default};\n gap: ${tokens.semantic.spacing.layout.md};\n transition: background-color ${tokens.semantic.motion.duration.normal} ${tokens.semantic.motion.easing.easeOut};\n \n ${({ $clickable }) => $clickable && `\n cursor: pointer;\n \n &:hover {\n background-color: ${tokens.semantic.color.background.subtle};\n }\n \n &:active {\n background-color: ${tokens.semantic.color.background['interactive-active']};\n }\n \n &:focus-visible {\n outline: ${tokens.semantic.border.width.thick} solid ${tokens.semantic.color.border.interactive};\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.spacing.layout.sm};\n`\n\nconst StyledMerchantSection = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.spacing.layout.sm};\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.spacing.layout.sm};\n`\n\nconst StyledMetadata = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.spacing.layout.sm};\n`\n\nconst StyledIconIndicator = styled.div`\n display: flex;\n align-items: center;\n gap: ${tokens.semantic.spacing.layout.xs};\n color: ${tokens.semantic.color.icon.subdued};\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 shopping: { color: 'purple', icon: 'paper', label: 'Shopping' },\n dining: { color: 'orange', icon: 'paper', label: 'Dining' },\n transport: { color: 'blue', icon: 'paper', label: 'Transport' },\n entertainment: { color: 'pink', icon: 'star', label: 'Entertainment' },\n bills: { color: 'red', icon: 'paper', label: 'Bills' },\n other: { color: 'gray', icon: 'paper', label: 'Other' }\n}\n\n// Map status to badge variant\nconst statusToBadgeVariant: Record<TransactionStatus, 'default' | 'primary' | 'error' | 'warning' | 'success'> = {\n completed: 'success',\n pending: 'warning',\n failed: 'error'\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, Badge, 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 // Get badge variant from status\n const badgeVariant = statusToBadgeVariant[status]\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 aria-label={isClickable ? `${merchant} transaction, ${amount < 0 ? 'expense' : 'income'} of ${Math.abs(amount)}` : undefined}\n data-testid={dataTestId}\n >\n <StyledAvatarSection>\n {status === 'pending' ? (\n <Badge variant={badgeVariant} dot aria-label=\"Pending transaction\">\n <Avatar \n name={merchant}\n picture={merchantLogo}\n size=\"md\"\n />\n </Badge>\n ) : (\n <Avatar \n name={merchant}\n picture={merchantLogo}\n size=\"md\"\n />\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 {status === 'failed' && (\n <Badge variant=\"error\" dot aria-label=\"Failed transaction\">\n <span />\n </Badge>\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 '../../../styles/tokens.json'\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":["semantic","tokens","initials","component","avatar","color","size","border","radius","AvatarContainer","styled","div","withConfig","shouldForwardProp","prop","startsWith","displayName","componentId","templateObject_1","__makeTemplateObject","_a","$size","circle","background","surface","AvatarImage","img","templateObject_2","AvatarInitials","span","templateObject_3","fontFamily","fontWeight","fontSize","text","lineHeight","getInitials","name","split","map","word","charAt","join","slice","toUpperCase","Avatar","picture","_b","dataTestId","props","__rest","_c","htmlProps","_d","useState","imageError","setImageError","_e","imageLoaded","setImageLoaded","handleImageError","handleImageLoad","showImage","_jsx","__assign","role","concat","children","src","alt","onError","onLoad","breakpoints","xs","breakpoint","sm","md","lg","xl","media","reducedMotion","fadeOut","keyframes","exitAnimation","css","motion","duration","fast","easing","easeOut","visuallyHidden","typography","letterSpacing","getTypographyStyles","variant","styles","display","tighter","h1","h2","tight","h3","h4","h5","normal","h6","subtitle","body","small","overline","caption","button1","button2","button3","label","getTextColor","colorVariant","colorMap","emphasis","subdued","inverse","disabled","interactive","error","success","warning","getDefaultElement","elementMap","StyledTypography","$variant","$color","Typography","as","defaultElement","elementType","badge","dot","count","ring","scaleIn","BadgeWrapper","BadgeIndicator","$isVisible","$isDot","minWidth","height","spacing","width","ScreenReaderOnly","templateObject_4","Badge","max","ariaLabel","className","isVisible","displayCount","toString","defaultAriaLabel","_jsxs","StyledBox","templateObject_49","$display","$flexDirection","$justifyContent","$alignItems","$flexWrap","templateObject_5","$gap","layout","$m","templateObject_7","$mt","templateObject_8","$mr","templateObject_9","$mb","templateObject_10","$ml","$mx","$my","templateObject_13","$p","templateObject_14","$pt","templateObject_15","$pr","$pb","$pl","templateObject_18","$px","templateObject_19","$py","templateObject_20","$width","$height","templateObject_22","$maxWidth","templateObject_23","$maxHeight","templateObject_24","$minWidth","templateObject_25","$minHeight","templateObject_26","$position","templateObject_27","$top","$right","$bottom","templateObject_30","$left","templateObject_31","$borderRadius","templateObject_32","$border","templateObject_33","thin","$borderTop","templateObject_34","$borderRight","$borderBottom","templateObject_36","$borderLeft","templateObject_37","$bg","templateObject_38","$shadow","elevation","$cursor","templateObject_41","$transition","templateObject_42","$hoverShadow","$hoverTransform","templateObject_45","templateObject_44","thick","focusOffset","$overflow","templateObject_46","$overflowX","templateObject_47","$overflowY","BoxTransform","flexDirection","justifyContent","alignItems","flexWrap","gap","m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","maxWidth","maxHeight","minHeight","position","top","right","bottom","left","borderRadius","borderTop","borderRight","borderBottom","borderLeft","bg","shadow","cursor","transition","hoverShadow","hoverTransform","overflow","overflowX","overflowY","onClick","onKeyDown","tabIndex","rest","Box","IconStyled","icon","$iconColor","Icon","iconColor","title","trim","undefined","iconData","iconsData","console","warn","viewBox","fill","xmlns","focusable","d","path","button","baseButtonStyles","hover","focus","outline","getVariantStyles","variantConfig","primary","backgroundColor","textColor","hoverBg","activeBg","active","disabledBg","disabledText","secondary","variants","naked","accent","danger","config","getSizeStyles","sizes","font","medium","large","StyledButton","StyledLink","a","getIconSize","buttonSize","renderButtonContent","iconName","iconSize","Button","url","purpose","target","LinkComponent","linkComponent","linkProps","href","buttonProps_1","handleClick","e","window","open","location","buttonProps","category","labelHeight","categoryText","blue","purple","pink","yellow","green","red","orange","gray","StyledCategoryLabel","VisibleContent","HiddenLabel","CategoryLabel","accessibleLabel","toLabelSize","CategoryBadge","chip","$selected","$clickable","$disabled","subtle","interactiveStates","padding","StyledChip","IconContainer","CloseButton","closeButton","none","Chip","ariaDescribedBy","isClickable","Boolean","normalizedVariant","content","handleKeyDown","event","key","preventDefault","LegacyChip","newVariant","InputChip","selected","onDismiss","isDismissible","handleDismiss","stopPropagation","handleCloseKeyDown","closeButtonLabel","type","FilterChip","BooleanChip","StyledContainer","Container","PictureWrapper","ImageLink","easeInOut","ImageButton","StyledImage","Picture","image","TimeStyled","time","formatDateSmart","date","customFormat","isToday","isYesterday","isThisWeek","weekStartsOn","format","DateFormatter","dateString","formatString","mode","parseISO","displayText","dateTime","iconButton","colours","IconButtonStyled","IconButton","ariaExpanded","ariaPressed","assign","StyledWrapper","$align","$weight","sizeToTypographyVariant","xlarge","sizeToIconSize","generateAriaLabel","amount","currency","locale","formatter","Intl","NumberFormat","style","minimumFractionDigits","maximumFractionDigits","parts","formatToParts","Math","abs","integerPart","find","value","fractionPart","sign","MoneyDisplay","showSign","_f","weight","_g","_h","align","formattedAmount","showPositiveIcon","showNegativeIcon","typographyVariant","amountColor","ProgressBarContainer","progressBar","ProgressBarFill","min","$value","ProgressBar","ariaLabelledBy","labelledBy","separatorTokens","separatorSpacing","StyledDivider","$orientation","borderProperty","strong","minimal","Divider","orientation","StyledStack","getGapValue","semanticSpacing","Stack","direction","wrap","gapValue","cssProps","statusColors","getStatusConfig","status","configs","pending","bgColor","completed","failed","cancelled","processing","scheduled","sizeConfig","StyledStatusLabel","$status","StatusLabelBase","showIcon","liveRegion","statusConfig","sizeStyles","displayLabel","StatusBadge","StatusLabel","StyledTag","Tag","tagSize","StyledBalanceSection","StyledTrendSection","StyledStackWrapper","StyledHeaderWrapper","accountCard","header","trendToIcon","up","down","neutral","trendToColor","AccountCard","accountName","balance","accountNumber","trend","trendValue","action","secondaryAction","trendIcon","trendColor","ListSpacingContext","createContext","StyledListItem","li","touchTarget","$interactive","opacity","$destructive","StyledItemContent","$spacing","StyledIconContainer","StyledTextContent","StyledRightContent","StyledChevronIcon","templateObject_6","$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","usePresence","isOpen","exitMs","isMounted","setIsMounted","useEffect","timer","setTimeout","clearTimeout","isPresent","isExiting","useInert","ref","isInert","node","current","setAttribute","removeAttribute","slideUp","fadeIn","StyledOverlay","overlay","zIndex","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","input","replace","mapSpeechErrorCode","defaultVoiceErrorMessage","code","textDrivenState","hasText","agentInputStateTransition","currentState","DEFAULT_IDLE_HELPER","DEFAULT_LISTENING_MESSAGE","DEFAULT_PROCESSING_MESSAGE","rotateRing","ControlsRow","InputShell","borderWidth","borderColor","raised","Input","placeholder","InputActions","CircularActionIconButton","InputWrapper","MicButtonWrapper","ringMask","MicListeningRing","templateObject_12","$reducedMotion","templateObject_11","StatusRow","StatusText","StatusAnnouncement","MeterContainer","templateObject_16","MeterBar","VisuallyHiddenLabel","getInitialState","createMeterBars","level","clampedLevel","AgentInput","defaultValue","onChange","onSubmit","isSubmitting","enableVoice","autoSubmitOnVoiceFinal","voiceLanguage","noSpeechTimeoutMs","onVoiceStart","onVoiceStop","onVoiceInterim","onVoiceFinal","onVoiceError","statusMessage","errorMessage","_j","isControlled","_k","internalValue","setInternalValue","_l","machineState","setMachineState","_m","interimTranscript","setInterimTranscript","_o","internalSubmitting","setInternalSubmitting","_p","internalErrorMessage","setInternalErrorMessage","_q","voiceSupported","setVoiceSupported","_r","prefersReducedMotion","setPrefersReducedMotion","_s","meterLevel","setMeterLevel","recognitionRef","noSpeechTimeoutRef","isStoppingRef","hasSubmittedVoiceFinalRef","audioStreamRef","audioContextRef","meterRafRef","inputId","useId","statusId","currentValue","effectiveSubmitting","effectiveState","isListening","hasVoice","updateMachineState","useCallback","previousState","updateValue","nextValue","clearNoSpeechTimeout","stopMeter","__awaiter","getTracks","forEach","track","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","__spreadArray","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","mediaQuery","matchMedia","sync","matches","displayedValue","useMemo","filter","onTextChange","onInputKeyDown","onMicToggle","statusByState","idle","typing","listening","processingFinalTranscript","submitting","unsupportedMessage","shouldShowUnsupported","resolvedStatus","isStatusError","meterBars","sendDisabled","htmlFor","readOnly","barHeight","alert","FADE_MS","EXIT_MS","fadeThenCollapse","EXIT_ANIMATION_NAMES","getName","variantIcons","info","variantIconColors","variantTitleColors","StyledAlert","$inline","severity","$appearance","appearance","$reducedExit","StyledContent","StyledTitle","StyledMessage","StyledActions","StyledDismissSlot","$lineHeight","StyledDismissButton","Alert","dismissible","inline","ariaLive","phase","setPhase","reducedExit","setReducedExit","exitStyle","setExitStyle","alertRef","onDismissRef","getComputedStyle","paddingTop","paddingBottom","boxSizing","offsetHeight","parseFloat","borderTopWidth","borderBottomWidth","call","forwarded","handleAnimationEnd","onAnimationEnd","pseudoElement","includes","animationName","alertIconColor","alertTitleColor","variantTextColors","StyledInlineAlert","$empty","StyledIconLine","InlineAlert","alertSize","hasMessage","BreadcrumbNavStyled","nav","BreadcrumbStyled","breadcrumbs","item","BreadcrumbSeparator","isInternalUrl","Breadcrumbs","breadcrumb","rel","CardSmallStyled","CardSmall","meta","CardLargeStyled","cardLarge","CardLarge","excerpt","labels","onImageClick","imageHref","Array","isArray","HiddenCheckboxInput","StyledCheckbox","checkbox","box","$checked","$indeterminate","$state","StyledCheckboxContainer","row","$labelPosition","StyledCheckboxLabel","StyledFieldContainer","StyledHelperText","field","helperText","$error","colorError","Checkbox","forwardRef","checked","indeterminate","labelPosition","providedId","ariaDescribedby","generatedId","helperTextId","errorId","state","describedBy","inputRef","useImperativeHandle","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","scrollHeight","handleToggleExpand","prev","showExpandButton","$sticky","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","DropdownContainer","DropdownTrigger","paddingY","$hasError","$isOpen","DropdownIcon","DropdownMenu","dropdown","floating","menu","DropdownOption","$isSelected","$isFocused","Dropdown","options","setIsOpen","focusedIndex","setFocusedIndex","dropdownRef","dropdownId","selectedOption","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","StyledInputBase","StyledTextAreaBase","textarea","StyledLabel","colorDisabled","StyledRequiredIndicator","requiredIndicator","StyledInputWrapper","StyledNumberInput","StyledStepperContainer","$isError","NumberInput","required","step","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","suggestions","showRecentSearches","recentSearches","onSuggestionSelect","onClearRecentSearches","debounceMs","loading","isFocused","setIsFocused","showSuggestions","setShowSuggestions","highlightedIndex","setHighlightedIndex","debouncedValue","setDebouncedValue","listRef","debouncedOnChange","displayItems","items","s","push","data","r","handleInputChange","handleFocus","onFocus","handleBlur","onBlur","handleSuggestionClick","suggestion","handleClear","scrollIntoView","block","showClearButton","hasItems","isString","slideInRight","slideInLeft","slideInTop","slideInBottom","StyledSheet","isDrawer","margin","StyledSheetContent","Sheet","StyledSliderContainer","StyledSliderTrackContainer","StyledTrack","progressTrack","StyledTrackFill","StyledThumb","slider","thumb","$active","StyledValueLabel","full","StyledMinMaxLabels","Slider","controlledValue","controlledRangeValue","rangeValue","defaultRangeValue","onRangeChange","showValueLabel","trackRef","activeThumb","setActiveThumb","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","minVal","maxVal","distToMin","distToMax","handleThumbMouseDown","handleMouseMove","handleMouseUp","valueChange","singlePercent","minPercent","maxPercent","onMouseDown","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","statusToBadgeVariant","TransactionListItem","merchant","merchantLogo","hasReceipt","hasNote","amountVariant","categoryData","badgeVariant","gapSpacing","base","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","templateObject_35","templateObject_17","$colsSm","$colsMd","$colsLg","templateObject_21","$colsXl","$gapSm","$gapMd","$gapLg","$gapXl","$gapXSm","$gapXMd","templateObject_28","$gapXLg","templateObject_29","$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]}