@assure-one/design-system 1.43.1 → 1.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-L5IQK3GV.js → chunk-4TXBY6P7.js} +4 -4
- package/dist/{chunk-L5IQK3GV.js.map → chunk-4TXBY6P7.js.map} +1 -1
- package/dist/{chunk-TBDTXAFH.js → chunk-E2URQD5A.js} +152 -121
- package/dist/chunk-E2URQD5A.js.map +1 -0
- package/dist/{chunk-5AL4W32Z.js → chunk-PC6M4QZ2.js} +9 -47
- package/dist/chunk-PC6M4QZ2.js.map +1 -0
- package/dist/{chunk-VK6SW34V.js → chunk-Z7QPHPNV.js} +3 -3
- package/dist/{chunk-VK6SW34V.js.map → chunk-Z7QPHPNV.js.map} +1 -1
- package/dist/icons/index.d.ts +135 -17
- package/dist/icons/index.js +1 -1
- package/dist/index.d.ts +15 -8
- package/dist/index.js +115 -201
- package/dist/index.js.map +1 -1
- package/dist/legacy/index.js +3 -3
- package/dist/suite/index.js +3 -3
- package/docs/components.md +7 -5
- package/docs/components.registry.json +8 -4
- package/docs/for-ai-agents.md +1 -1
- package/eslint-config/index.mjs +240 -0
- package/package.json +1 -1
- package/dist/chunk-5AL4W32Z.js.map +0 -1
- package/dist/chunk-TBDTXAFH.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/cn.ts","../src/icons/icon-base.tsx","../src/icons/alert-circle-icon.tsx","../src/icons/alert-triangle-icon.tsx","../src/icons/alert-triangle-solid-icon.tsx","../src/icons/archive-icon.tsx","../src/icons/arrow-down-icon.tsx","../src/icons/arrow-left-icon.tsx","../src/icons/arrow-right-icon.tsx","../src/icons/arrow-right-small-icon.tsx","../src/icons/arrow-up-icon.tsx","../src/icons/arrow-up-right-icon.tsx","../src/icons/at-sign-icon.tsx","../src/icons/ban-icon.tsx","../src/icons/bar-chart-icon.tsx","../src/icons/bell-icon.tsx","../src/icons/bold-icon.tsx","../src/icons/brain-icon.tsx","../src/icons/briefcase-icon.tsx","../src/icons/building-2-icon.tsx","../src/icons/building-icon.tsx","../src/icons/calculator-icon.tsx","../src/icons/calendar-icon.tsx","../src/icons/camera-icon.tsx","../src/icons/chat-bubble-icon.tsx","../src/icons/check-check-icon.tsx","../src/icons/check-circle-2-icon.tsx","../src/icons/check-circle-solid-icon.tsx","../src/icons/check-icon.tsx","../src/icons/chevron-down-icon.tsx","../src/icons/chevron-left-icon.tsx","../src/icons/chevron-right-icon.tsx","../src/icons/chevron-up-icon.tsx","../src/icons/chevrons-down-up-icon.tsx","../src/icons/chevrons-left-icon.tsx","../src/icons/chevrons-right-icon.tsx","../src/icons/chevrons-up-down-icon.tsx","../src/icons/circle-dot-icon.tsx","../src/icons/circle-icon.tsx","../src/icons/clipboard-check-icon.tsx","../src/icons/clock-icon.tsx","../src/icons/x-icon.tsx","../src/icons/close-icon.tsx","../src/icons/command-icon.tsx","../src/icons/copy-icon.tsx","../src/icons/corner-down-left-icon.tsx","../src/icons/credit-card-icon.tsx","../src/icons/file-text-icon.tsx","../src/icons/document-icon.tsx","../src/icons/dollar-sign-icon.tsx","../src/icons/download-icon.tsx","../src/icons/external-link-icon.tsx","../src/icons/extract-icon.tsx","../src/icons/eye-icon.tsx","../src/icons/eye-off-icon.tsx","../src/icons/file-chart-column-icon.tsx","../src/icons/file-icon.tsx","../src/icons/file-return-icon.tsx","../src/icons/filter-icon.tsx","../src/icons/flag-icon.tsx","../src/icons/folder-closed-icon.tsx","../src/icons/folder-down-icon.tsx","../src/icons/folder-open-icon.tsx","../src/icons/folder-plus-icon.tsx","../src/icons/folder-up-icon.tsx","../src/icons/globe-icon.tsx","../src/icons/google-brand-icon.tsx","../src/icons/graduation-cap-icon.tsx","../src/icons/grip-horizontal-icon.tsx","../src/icons/grip-vertical-icon.tsx","../src/icons/help-circle-icon.tsx","../src/icons/history-icon.tsx","../src/icons/home-icon.tsx","../src/icons/inbox-icon.tsx","../src/icons/info-circle-solid-icon.tsx","../src/icons/info-icon.tsx","../src/icons/italic-icon.tsx","../src/icons/kanban-icon.tsx","../src/icons/key-icon.tsx","../src/icons/landmark-icon.tsx","../src/icons/layers-icon.tsx","../src/icons/layout-dashboard-icon.tsx","../src/icons/layout-grid-icon.tsx","../src/icons/layout-list-icon.tsx","../src/icons/lightning-icon.tsx","../src/icons/link-2-icon.tsx","../src/icons/link-icon.tsx","../src/icons/list-checks-icon.tsx","../src/icons/list-icon.tsx","../src/icons/list-ordered-icon.tsx","../src/icons/loader-icon.tsx","../src/icons/lock-icon.tsx","../src/icons/lock-keyhole-icon.tsx","../src/icons/lock-open-icon.tsx","../src/icons/log-out-icon.tsx","../src/icons/mail-icon.tsx","../src/icons/map-pin-icon.tsx","../src/icons/maximize-icon.tsx","../src/icons/menu-icon.tsx","../src/icons/message-circle-icon.tsx","../src/icons/message-circle-more-icon.tsx","../src/icons/message-circle-warning-icon.tsx","../src/icons/mic-icon.tsx","../src/icons/microsoft-brand-icon.tsx","../src/icons/minimize-icon.tsx","../src/icons/minus-icon.tsx","../src/icons/monitor-icon.tsx","../src/icons/moon-icon.tsx","../src/icons/more-horizontal-icon.tsx","../src/icons/more-vertical-icon.tsx","../src/icons/mouse-pointer-2-icon.tsx","../src/icons/move-icon.tsx","../src/icons/palette-icon.tsx","../src/icons/panel-left-close-icon.tsx","../src/icons/panel-left-icon.tsx","../src/icons/panel-right-close-icon.tsx","../src/icons/panel-right-icon.tsx","../src/icons/paperclip-icon.tsx","../src/icons/pause-icon.tsx","../src/icons/pen-sign-icon.tsx","../src/icons/pen-tool-icon.tsx","../src/icons/pencil-icon.tsx","../src/icons/phone-icon.tsx","../src/icons/play-icon.tsx","../src/icons/plus-icon.tsx","../src/icons/receipt-icon.tsx","../src/icons/refresh-cw-icon.tsx","../src/icons/reply-icon.tsx","../src/icons/rotate-ccw-icon.tsx","../src/icons/rows-4-icon.tsx","../src/icons/rows-icon.tsx","../src/icons/save-icon.tsx","../src/icons/search-icon.tsx","../src/icons/send-icon.tsx","../src/icons/settings-icon.tsx","../src/icons/shield-icon.tsx","../src/icons/sigma-icon.tsx","../src/icons/slash-icon.tsx","../src/icons/smartphone-icon.tsx","../src/icons/sparkle-icon.tsx","../src/icons/sparkles-icon.tsx","../src/icons/square-play-icon.tsx","../src/icons/star-icon.tsx","../src/icons/stop-icon.tsx","../src/icons/strikethrough-icon.tsx","../src/icons/sun-icon.tsx","../src/icons/table-icon.tsx","../src/icons/tag-icon.tsx","../src/icons/team-icon.tsx","../src/icons/thumbs-down-icon.tsx","../src/icons/thumbs-up-icon.tsx","../src/icons/timer-icon.tsx","../src/icons/trash-icon.tsx","../src/icons/trash-2-icon.tsx","../src/icons/trash-solid-icon.tsx","../src/icons/trending-down-icon.tsx","../src/icons/trending-up-icon.tsx","../src/icons/type-icon.tsx","../src/icons/underline-icon.tsx","../src/icons/upload-icon.tsx","../src/icons/user-circle-icon.tsx","../src/icons/user-icon.tsx","../src/icons/users-icon.tsx","../src/icons/video-icon.tsx","../src/icons/volume-2-icon.tsx","../src/icons/volume-x-icon.tsx","../src/icons/workflow-icon.tsx","../src/icons/x-circle-solid-icon.tsx","../src/icons/zoom-in-icon.tsx","../src/icons/zoom-out-icon.tsx"],"names":["jsx","jsxs"],"mappings":";;;;;;;AAwDA,IAAM,KAAA,GAAQ,CAAC,MAAA,KAAmB,MAAA,CAAO,MAAM,GAAG,CAAA;AAOlD,IAAM,SAAA,GAAY,KAAA;AAAA,EAChB;AACF,CAAA;AAGA,IAAM,SAAA,GAAY,MAAM,sFAAsF,CAAA;AAG9G,IAAM,OAAA,GAAU,MAAM,WAAW,CAAA;AAGjC,IAAM,OAAA,GAAU,MAAM,cAAc,CAAA;AAQpC,IAAM,OAAA,GAAU,KAAA;AAAA,EACd;AACF,CAAA;AAOA,IAAM,UAAA,GAAa,MAAM,wEAAwE,CAAA;AAgBjG,IAAM,aAAA,GAAgB,CAAC,KAAA,KAAkB,kCAAA,CAAmC,KAAK,KAAK,CAAA;AAO/E,IAAM,aAAA,GAAgB;AAAA,EAC3B,MAAA,EAAQ;AAAA,IACN,KAAA,EAAO;AAAA,MACL,MAAA,EAAQ,SAAA;AAAA,MACR,MAAA,EAAQ,SAAA;AAAA,MACR,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,WAAA,EAAa;AAAA,MACX,QAAQ,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG;AAAA;AACtC;AAEJ,CAAA;AAeA,IAAM,WAAA,GAAc,mBAAA;AAIpB,IAAM,OAAA,GAAU,YAAY,aAAa,CAAA;AAElC,SAAS,MAAM,MAAA,EAA8B;AAClD,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACjGA,IAAM,gBAAA,GAAmB,WAAA;AAKzB,IAAM,oBAAA,GAAuB,CAAA;AAGtB,SAAS,WAAW,IAAA,EAAiC;AAC1D,EAAA,OAAO,OAAO,SAAS,QAAA,GAAW,IAAA,GAAO,OAAO,UAAA,CAAW,SAAA,CAAU,IAAI,CAAC,CAAA;AAC5E;AAEA,SAAS,YAAY,IAAA,EAAwB;AAC3C,EAAA,OAAO,sBAAsB,IAAI,CAAA,kBAAA,EAAqB,IAAI,CAAA,EAAA,EAAK,SAAA,CAAU,IAAI,CAAC,CAAA,EAAA,CAAA;AAChF;AAMO,SAAS,IAAA,CAAK;AAAA,EACnB,IAAA,GAAO,EAAA;AAAA,EACP,WAAA;AAAA,EACA,OAAA,GAAU,gBAAA;AAAA,EACV,SAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8C;AAC5C,EAAA,MAAM,EAAA,GAAK,WAAW,IAAI,CAAA;AAG1B,EAAA,MAAM,GAAA,GACJ,OAAO,IAAA,KAAS,QAAA,GAAW,EAAE,KAAA,EAAO,WAAA,CAAY,IAAI,CAAA,EAAG,MAAA,EAAQ,WAAA,CAAY,IAAI,GAAE,GAAI,MAAA;AACvF,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAA;AAAA,MACP,MAAA,EAAQ,EAAA;AAAA,MACR,OAAA;AAAA,MACA,IAAA,EAAK,MAAA;AAAA,MACL,aAAa,WAAA,IAAe,oBAAA;AAAA,MAC5B,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,SAAS,CAAA;AAAA,MACtC,KAAA,EAAO,OAAO,KAAA,GAAQ,EAAE,GAAG,GAAA,EAAK,GAAG,OAAM,GAAI,MAAA;AAAA,MAC5C,GAAI,UAAU,MAAA,GAAY,EAAE,MAAM,KAAA,EAAM,GAAI,EAAE,aAAA,EAAe,MAAA,EAAO;AAAA,MACpE,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,KAAA,KAAU,MAAA,mBAAY,GAAA,CAAC,OAAA,EAAA,EAAO,QAAA,EAAA,KAAA,EAAM,CAAA,GAAW,IAAA;AAAA,QAC/C;AAAA;AAAA;AAAA,GACH;AAEJ;AAkBA,SAAS,WAAW,KAAA,EAAqE;AACvF,EAAA,OACE,OAAO,KAAA,KAAU,QAAA,IAChB,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,IAAK,KAAA,CAAM,KAAA,CAAM,CAAC,IAAA,KAAS,OAAO,SAAS,QAAQ,CAAA;AAE3E;AAcO,SAAS,WAAW,UAAA,EAA2C;AACpE,EAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,WAAA,EAAa,oBAAmB,GAAI,UAAA;AAClE,EAAA,MAAM,QAAA,GAAW,UAAA,CAAW,KAAK,CAAA,GAAA,CAC5B,OAAO,KAAA,KAAU,QAAA,GAAW,CAAC,KAAK,CAAA,GAAI,KAAA,EAAO,GAAA,CAAI,CAAC,GAAG,KAAA,qBACpD,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MAEC,CAAA;AAAA,MACA,MAAA,EAAO,cAAA;AAAA,MACP,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe;AAAA,KAAA;AAAA,IAJV;AAAA,GAMR,CAAA,GACD,KAAA;AACJ,EAAA,SAAS,UAAU,EAAE,WAAA,GAAc,kBAAA,EAAoB,GAAG,OAAM,EAAc;AAC5E,IAAA,2BACG,IAAA,EAAA,EAAK,WAAA,EAA0B,OAAA,EAAmB,GAAG,OACnD,QAAA,EACH,CAAA;AAAA,EAEJ;AACA,EAAA,SAAA,CAAU,WAAA,GAAc,IAAA;AACxB,EAAA,OAAO,SAAA;AACT;AAiBO,SAAS,UAAA,CACd,MACA,IAAA,EACA,EAAE,SAAS,KAAA,EAAM,GAA0B,EAAC,EAC7B;AACf,EAAA,OAAO,UAAA,CAAW;AAAA,IAChB,IAAA;AAAA,IACA,OAAO,IAAA,CAAK,GAAA;AAAA,MAAI,CAAC,CAAC,GAAA,EAAK,UAAU,CAAA,EAAG,KAAA,KAClC,cAAc,GAAA,EAAK;AAAA,QACjB,GAAA,EAAK,KAAA;AAAA,QACL,MAAA,EAAQ,cAAA;AAAA,QACR,aAAA,EAAe,OAAA;AAAA,QACf,cAAA,EAAgB,OAAA;AAAA,QAChB,GAAI,MAAA,GAAS,EAAE,IAAA,EAAM,gBAAe,GAAI,IAAA;AAAA,QACxC,GAAG;AAAA,OACJ;AAAA;AACH,GACD,CAAA;AACH;ACnMO,IAAM,eAAA,mBAAkC,UAAA,CAAW,iBAAA,EAAmB,WAAW;ACAjF,IAAM,iBAAA,mBAAoC,UAAA,CAAW,mBAAA,EAAqB,aAAa;ACFvF,SAAS,uBAAuB,EAAE,IAAA,GAAO,EAAA,EAAI,GAAG,OAAM,EAAc;AACzE,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAa,GAAG,OACpB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAS,SAAA;AAAA,MACT,QAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAK,cAAA;AAAA,MACL,CAAA,EAAE;AAAA;AAAA,GACJ,EACF,CAAA;AAEJ;ACTO,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;;;ACE9E,IAAM,mBAAA,GAAsB;ACF5B,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACCrE,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,YAAY;ACDpF,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACClE,IAAM,OAAA,mBAA0B,UAAA,CAAW,SAAA,EAAW,GAAG;ACDzD,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,iBAAiB;ACAjF,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACCxE,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACD9E,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACCxE,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACDlE,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,aAAa;ACCjF,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACD9E,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,WAAW;ACFnF,SAAS,qBAAqB,EAAE,IAAA,GAAO,EAAA,EAAI,GAAG,OAAM,EAAc;AACvE,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAa,GAAG,OACpB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAS,SAAA;AAAA,MACT,QAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAK,cAAA;AAAA,MACL,CAAA,EAAE;AAAA;AAAA,GACJ,EACF,CAAA;AAEJ;ACTO,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,eAAA,mBAAkC,UAAA,CAAW,iBAAA,EAAmB,WAAW;ACAjF,IAAM,eAAA,mBAAkC,UAAA,CAAW,iBAAA,EAAmB,WAAW;ACAjF,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,YAAY;ACApF,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACC3E,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,cAAc;ACA1F,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,YAAY;ACApF,IAAM,iBAAA,mBAAoC,UAAA,CAAW,mBAAA,EAAqB,aAAa;ACDvF,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,cAAc;ACA1F,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,cAAc;ACA1F,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,KAAA,mBAAwB,UAAA,CAAW,OAAA,EAAS,CAAC;;;ACEnD,IAAM,SAAA,GAAY;ACFlB,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,cAAc;ACA1F,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;;;ACDxE,IAAM,YAAA,GAAe;ACCrB,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACCxE,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,YAAY;ACMpF,SAAS,YAAY,EAAE,IAAA,GAAO,IAAI,SAAA,EAAW,GAAG,OAAM,EAAc;AACzE,EAAA,MAAM,MAAM,KAAA,EAAM;AAClB,EAAA,MAAM,MAAA,GAAS,gBAAgB,GAAG,CAAA,CAAA;AAClC,EAAA,MAAM,MAAA,GAAS,gBAAgB,GAAG,CAAA,CAAA;AAClC,EAAA,MAAM,EAAA,GAAK,WAAW,IAAI,CAAA;AAC1B,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAA;AAAA,MACP,MAAA,EAAS,KAAK,EAAA,GAAM,EAAA;AAAA,MACpB,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,KAAA,EAAM,4BAAA;AAAA,MACN,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,SAAS,CAAA;AAAA,MACtC,aAAA,EAAY,MAAA;AAAA,MACX,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAD,IAAC,GAAA,EAAA,EAAE,QAAA,EAAU,CAAA,KAAA,EAAQ,MAAM,KACzB,QAAA,kBAAAA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,CAAA,EAAE,s3GAAA;AAAA,YACF,IAAA,EAAM,QAAQ,MAAM,CAAA,CAAA;AAAA;AAAA,SACtB,EACF,CAAA;AAAA,wBACAC,KAAC,MAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAA,IAAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,MAAA;AAAA,cACJ,EAAA,EAAG,UAAA;AAAA,cACH,EAAA,EAAG,UAAA;AAAA,cACH,EAAA,EAAG,MAAA;AAAA,cACH,EAAA,EAAG,IAAA;AAAA,cACH,aAAA,EAAc,gBAAA;AAAA,cAEd,QAAA,EAAA;AAAA,gCAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,gCAC1BA,GAAAA,CAAC,MAAA,EAAA,EAAK,MAAA,EAAO,GAAA,EAAI,WAAU,SAAA,EAAU;AAAA;AAAA;AAAA,WACvC;AAAA,0BACAA,GAAAA,CAAC,UAAA,EAAA,EAAS,EAAA,EAAI,QACZ,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAA,EAAK,SAAQ,CAAA,EAC5C;AAAA,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;AC/CO,IAAM,OAAA,mBAA0B,UAAA,CAAW,SAAA,EAAW,GAAG;ACAzD,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACClE,IAAM,mBAAA,mBAAsC,UAAA;AAAA,EACjD,qBAAA;AAAA,EACA;AACF;ACJO,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,MAAM;ACK1E,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACLlE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,MAAM;ACC9E,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACD9E,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACC9E,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACDxE,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACS/D,SAAS,gBAAgB,EAAE,IAAA,GAAO,EAAA,EAAI,GAAG,OAAM,EAAc;AAClE,EAAA,uBACEC,IAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAa,GAAG,KAAA,EACpB,QAAA,EAAA;AAAA,oBAAAD,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,SAAA;AAAA,QACL,CAAA,EAAE;AAAA;AAAA,KACJ;AAAA,oBACAA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,SAAA;AAAA,QACL,CAAA,EAAE;AAAA;AAAA,KACJ;AAAA,oBACAA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,SAAA;AAAA,QACL,CAAA,EAAE;AAAA;AAAA,KACJ;AAAA,oBACAA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,SAAA;AAAA,QACL,CAAA,EAAE;AAAA;AAAA;AACJ,GAAA,EACF,CAAA;AAEJ;AC7BO,IAAM,iBAAA,mBAAoC,UAAA,CAAW,mBAAA,EAAqB,aAAa;ACAvF,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,cAAc;ACA1F,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,YAAY;ACDpF,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,kBAAkB;ACAtF,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,KAAK;ACA7D,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACF/D,SAAS,oBAAoB,EAAE,IAAA,GAAO,EAAA,EAAI,GAAG,OAAM,EAAc;AACtE,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAa,GAAG,OACpB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAS,SAAA;AAAA,MACT,QAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAK,cAAA;AAAA,MACL,CAAA,EAAE;AAAA;AAAA,GACJ,EACF,CAAA;AAEJ;ACTO,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,OAAA,mBAA0B,UAAA,CAAW,SAAA,EAAW,GAAG;ACCzD,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACDxE,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,mBAAA,mBAAsC,UAAA;AAAA,EACjD,qBAAA;AAAA,EACA;AACF;ACHO,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,GAAG;ACArE,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,eAAA,mBAAkC,UAAA,CAAW,iBAAA,EAAmB,WAAW;ACSjF,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,YAAY;ACTxE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,eAAA,mBAAkC,UAAA,CAAW,iBAAA,EAAmB,WAAW;ACAjF,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACAxE,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACClE,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACDxE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,iBAAA,mBAAoC,UAAA,CAAW,mBAAA,EAAqB,aAAa;ACCvF,IAAM,qBAAA,mBAAwC,UAAA;AAAA,EACnD,uBAAA;AAAA,EACA;AACF;ACJO,IAAM,wBAAA,mBAA2C,UAAA;AAAA,EACtD,0BAAA;AAAA,EACA;AACF;ACHO,IAAM,OAAA,mBAA0B,UAAA,CAAW,SAAA,EAAW,GAAG;ACKzD,SAAS,mBAAmB,EAAE,IAAA,GAAO,EAAA,EAAI,GAAG,OAAM,EAAc;AACrE,EAAA,uBACEC,IAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAa,GAAG,KAAA,EACpB,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAA,EAAK,SAAA,EAAU,CAAA;AAAA,oBACxDA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAA,EAAK,SAAA,EAAU,CAAA;AAAA,oBACzDA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAA,EAAK,SAAA,EAAU,CAAA;AAAA,oBACzDA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAA,EAAK,SAAA,EAAU;AAAA,GAAA,EAC5D,CAAA;AAEJ;ACbO,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACDxE,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,QAAQ;ACCpF,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,gBAAgB;ACAxF,IAAM,iBAAA,mBAAoC,UAAA,CAAW,mBAAA,EAAqB,aAAa;ACDvF,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,kBAAA,mBAAqC,UAAA,CAAW,oBAAA,EAAsB,cAAc;ACA1F,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACC3E,IAAM,mBAAA,mBAAsC,UAAA;AAAA,EACjD,qBAAA;AAAA,EACA;AACF;ACHO,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACD9E,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,SAAS;ACCvE,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACDrE,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACCrE,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACD3E,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACAxE,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACClE,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACD/D,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACCxE,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACD9E,IAAM,2BAA2B,UAAA,CAAW,UAAA,EAAY,MAAM,EAAE,MAAA,EAAQ,MAAM;ACA9E,IAAM,2BAA2B,UAAA,CAAW,UAAA,EAAY,QAAQ,EAAE,MAAA,EAAQ,MAAM;ACAhF,IAAM,iBAAA,mBAAoC,UAAA,CAAW,mBAAA,EAAqB,aAAa;ACAvF,IAAM,OAAA,mBAA0B,UAAA,CAAW,SAAA,EAAW,GAAG;ACAzD,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,OAAA,mBAA0B,UAAA,CAAW,SAAA,EAAW,GAAG;ACAzD,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,QAAQ;ACAhE,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACCxE,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACD/D,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;;;ACD/D,IAAM,UAAA,GAAa;ACInB,IAAM,iCAAiC,UAAA,CAAW;AAAA,EACvD,IAAA,EAAM,gBAAA;AAAA,EACN,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAS,SAAA;AAAA,MACT,QAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAK,cAAA;AAAA,MACL,CAAA,EAAE;AAAA;AAAA;AAGR,CAAC;ACbM,IAAM,gBAAA,mBAAmC,UAAA,CAAW,kBAAA,EAAoB,YAAY;ACApF,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACC9E,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACD5D,IAAM,aAAA,mBAAgC,UAAA,CAAW,eAAA,EAAiB,SAAS;ACA3E,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,cAAA,mBAAiC,UAAA,CAAW,gBAAA,EAAkB,UAAU;ACA9E,IAAM,QAAA,mBAA2B,UAAA,CAAW,UAAA,EAAY,IAAI;ACA5D,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACC/D,IAAM,SAAA,mBAA4B,UAAA,CAAW,WAAA,EAAa,KAAK;ACA/D,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACArE,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO;ACDrE,IAAM,YAAA,mBAA+B,UAAA,CAAW,cAAA,EAAgB,QAAQ;ACFxE,SAAS,iBAAiB,EAAE,IAAA,GAAO,EAAA,EAAI,GAAG,OAAM,EAAc;AACnE,EAAA,uBACEA,GAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAa,GAAG,OACpB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAS,SAAA;AAAA,MACT,QAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAK,cAAA;AAAA,MACL,CAAA,EAAE;AAAA;AAAA,GACJ,EACF,CAAA;AAEJ;ACTO,IAAM,UAAA,mBAA6B,UAAA,CAAW,YAAA,EAAc,MAAM;ACAlE,IAAM,WAAA,mBAA8B,UAAA,CAAW,aAAA,EAAe,OAAO","file":"chunk-TBDTXAFH.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\n/* ────────────────────────────────────────────────────────────────────────────\n * `cn` = clsx + tailwind-merge, taught the design system's own Tailwind 4\n * `@theme` scales.\n *\n * tailwind-merge ships Tailwind's *default* theme, so out of the box it cannot\n * tell that `rounded-card` is a border-radius or that `shadow-pop` is a\n * box-shadow. Unknown values fall through to the nearest catch-all: an\n * unrecognised radius belongs to no group at all, so both classes survive and\n * the stylesheet order decides; an unrecognised `shadow-*` value is filed as a\n * shadow *colour*, so it never conflicts with `shadow-md`. Registering the DS\n * scales below is what makes `cn()` resolve them.\n *\n * Source of truth: `src/tokens/generated/theme.css` (generated from `tokens/src`,\n * ADR-003). Each list holds only the DS-specific values — Tailwind's own values\n * (`rounded-md`, `shadow-lg`, `ease-out`, `font-mono`, …) are already known.\n * Tokens are additive, so adding a `--radius-*`, `--shadow-*`, `--ease-*`,\n * `--font-*`, `--text-*` or `--animate-*` token means adding its value to the\n * matching list.\n *\n * Deliberately NOT configured:\n *\n * - **A `prefix`.** Wave 1 compiles component CSS with Tailwind's `prefix(ds)`,\n * so DS classes read `ds:rounded-card`. Spike S1 measured that setting\n * tailwind-merge's `prefix` option *breaks* merging (2.6.1: 4 of 12 cases;\n * 3.6.0: stops merging a consumer's own unprefixed classes), while the default\n * configuration passes 12 of 12 because it treats `ds:` as an ordinary unknown\n * variant. ADR-004 decision 4 makes that binding: conflicts between the DS and\n * a consumer's vocabulary are settled by cascade layer, not by merging.\n * See `docs/spikes/s1` F4.\n * - **The `--z-*` scale.** Tailwind 4 has no `z` theme namespace, so the bare\n * `z-modal` form compiles to nothing; the DS reaches the scale through an\n * arbitrary value instead, and the default config already merges those against\n * `z-10`. Registering the bare names would make `cn(\"z-10\", \"z-modal\")` drop\n * the class that works in favour of one that does not.\n * - **`--color-*`.** Every `text-*`, `bg-*`, `border-*` and `ring-*` colour\n * group ends in a catch-all, so `text-fg-3`, `bg-bg-2` and their siblings\n * already resolve against each other and against arbitrary values.\n * - **The `size-*` and spacing scales.** The DS declares no `--spacing-*` token\n * and uses Tailwind's numeric scale, including the fractional steps, which\n * tailwind-merge 3 validates on its own.\n * ──────────────────────────────────────────────────────────────────────────── */\n\n/**\n * The scale lists below are written as one space-separated string rather than an\n * array of literals. That is not only for brevity: a bare `\"icon\"` or `\"pill\"`\n * literal in this module — which every component imports — is interned by the\n * checker before it reaches the components, which moves that member to the front\n * of the union TypeScript prints for `ButtonProps[\"size\"]` and\n * `TabsListProps[\"variant\"]` in `dist/index.d.ts` and `api/root.api.md`. Same\n * types, different member order, a failing `pnpm api:check`, and no public\n * signature touched. One sentence per scale keeps the emitted declarations\n * byte-identical.\n */\nconst split = (values: string) => values.split(\" \");\n\n/**\n * `--radius-*` values that are not Tailwind's. Feeds every `rounded-*` group.\n * `control surface surface-sm badge` are the W2-07 roles (`Surface` is their\n * first consumer); the reference steps stay out because no component may name one.\n */\nconst DS_RADIUS = split(\n \"badges btn buttons card cards general icon input inputs pill control surface surface-sm badge\",\n);\n\n/** `--shadow-*` values that are not Tailwind's, including the W2-08 elevation roles and the VN-5 field halo. */\nconst DS_SHADOW = split(\"card focus focus-ring focus-ring-field pop quiet subtle flat raised floating overlay\");\n\n/** `--ease-*` values that are not Tailwind's. */\nconst DS_EASE = split(\"out-quart\");\n\n/** `--font-*` values that are not Tailwind's. */\nconst DS_FONT = split(\"body display\");\n\n/**\n * `--text-*` values that are not Tailwind's: the twelve typography roles\n * (W2-01), which `Text` and `Heading` render as `text-<role>` (W2-12, W2-13).\n * Without this list tailwind-merge files `text-body` as a text *colour* and\n * drops it against `text-fg-3`.\n */\nconst DS_TEXT = split(\n \"display title-page title-section title-sub body body-sm label helper caption micro overline code\",\n);\n\n/**\n * `--animate-*` values that are not Tailwind's, plus `pulse-soft`, which is a\n * hand-written utility in `src/styles/components/ai-messaging.css` rather than a\n * theme token but belongs to the same class group.\n */\nconst DS_ANIMATE = split(\"accordion-down accordion-up collapsible-down collapsible-up pulse-soft\");\n\n/**\n * Matches a box-shadow written as an arbitrary value that references a\n * `--shadow-*` token — how components reach the shadow steps that are not\n * exposed as a named utility. tailwind-merge cannot tell an arbitrary box-shadow\n * from an arbitrary shadow *colour*, so any value that does not begin with a\n * length is filed under `shadow-color`, where it would never conflict with\n * `shadow-md` or `shadow-card`. Keying on the token prefix is exact for this\n * repo: every arbitrary shadow in `src/` is either a literal shadow (a length\n * list, which Tailwind already recognises) or a `--shadow-*` reference, and a\n * genuine shadow colour would reference a `--color-*` token and keep resolving\n * as a colour. Worked examples live in the test file, because `@source` scans\n * `src/lib` and a literal arbitrary class written here would be compiled into\n * `dist/styles.css`.\n */\nconst isDsShadowVar = (value: string) => /^\\[var\\(--shadow-[a-z0-9-]*\\)\\]$/.test(value);\n\n/**\n * The extension handed to tailwind-merge. Exported for the type and behaviour\n * assertions in `__tests__/cn.test.ts`; it is not part of the public surface —\n * `src/index.ts` exports `cn` only.\n */\nexport const dsMergeConfig = {\n extend: {\n theme: {\n radius: DS_RADIUS,\n shadow: DS_SHADOW,\n ease: DS_EASE,\n font: DS_FONT,\n text: DS_TEXT,\n animate: DS_ANIMATE,\n },\n classGroups: {\n shadow: [{ shadow: [isDsShadowVar] }],\n },\n },\n};\n\n/**\n * Why `extendTailwindMerge` is called through a non-generic alias: its type\n * parameters default to `DefaultClassGroupIds`, a ~400-member string-literal\n * union. Instantiating that generic in this module — which every component\n * imports — interns those literals before the checker reaches the components,\n * and that reorders the string-literal unions TypeScript prints for every `cva`\n * variant prop in `dist/index.d.ts` and `api/root.api.md`: identical types,\n * different member order, and a failing `pnpm api:check` for a change that\n * touches no public signature. The alias keeps the instantiation out of the\n * emitted declarations. `dsMergeConfig` is checked against tailwind-merge's own\n * `ConfigExtension` type in the test file, where emitted types are not at stake,\n * and the 30 conflict tests are the behavioural guard.\n */\nconst extendMerge = extendTailwindMerge as unknown as (\n config: typeof dsMergeConfig,\n) => (...classLists: string[]) => string;\n\nconst twMerge = extendMerge(dsMergeConfig);\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import { createElement } from \"react\";\n\nimport type { ControlSize } from \"../foundation/vocab\";\nimport { cn } from \"../lib/cn\";\nimport { iconSizes } from \"../tokens/reference\";\n\n/**\n * The icon contract (target architecture §37; W3-18, W3-19, W3-20): the props\n * every catalogue icon takes, the `<svg>` root they all render through, and\n * `createIcon()`, which builds an icon from path data or elements.\n *\n * The catalogue itself is one module per icon next to this file\n * (`src/icons/<name>-icon.tsx`); `src/icons/index.ts` and the compat facade\n * `src/primitives/icons.tsx` are generated from those modules by\n * `scripts/icons/generate.mjs`. `Icon` and `iconSizePx` are exported for the\n * catalogue modules only — neither barrel re-exports them.\n */\n\n/**\n * Named icon boxes — the four `--ds-icon-size-*` steps of W2-10 (12 / 14 / 16 /\n * 20 px), spelled with the shared size vocabulary (ADR-007) and derived from the\n * token scale so the type and the tokens cannot disagree.\n */\nexport type IconSize = Extract<ControlSize, keyof typeof iconSizes>;\n\nexport interface IconProps extends React.SVGAttributes<SVGElement> {\n /**\n * The icon box. A size name renders `var(--ds-icon-size-<name>)` — with the\n * legacy `--icon-size-<name>` and then the token's pixel value as fallbacks —\n * so a theme can retune the boxes; a number is a pixel box, as before.\n * Defaults to 24, the grid the glyphs are drawn on.\n */\n size?: IconSize | number;\n /**\n * Stroke width of every stroked element, set once on the root `<svg>` and\n * inherited. Defaults to Lucide's 2 on the 24-unit grid, at every size (the\n * line scales with the box, as Lucide's does). An explicit value always wins.\n */\n strokeWidth?: number | string | undefined;\n /**\n * Accessible name. Icons are decorative (`aria-hidden`); a `title` exposes\n * the svg as `role=\"img\"` with a `<title>` child. (An `aria-label` alone\n * still lands on the hidden svg, as it always has — C-DOM-15 freezes that\n * DOM for Pro; use `title` to name an icon.)\n */\n title?: string;\n}\n\n/** What every catalogue icon and every `createIcon()` product is. */\nexport interface IconComponent {\n (props: IconProps): React.JSX.Element;\n displayName?: string;\n}\n\nconst DEFAULT_VIEW_BOX = \"0 0 24 24\";\n/**\n * Lucide's stroke on the 24-unit grid. The catalogue draws Lucide's glyphs, so\n * `createIcon()` glyphs default to the same weight and sit beside them evenly.\n */\nconst DEFAULT_STROKE_WIDTH = 2;\n\n/** Pixel box of a `size` prop. For the catalogue modules; not package surface. */\nexport function iconSizePx(size: IconSize | number): number {\n return typeof size === \"number\" ? size : Number.parseFloat(iconSizes[size]);\n}\n\nfunction iconSizeVar(size: IconSize): string {\n return `var(--ds-icon-size-${size}, var(--icon-size-${size}, ${iconSizes[size]}))`;\n}\n\n/**\n * The `<svg>` root every catalogue icon renders through. For the catalogue\n * modules (and `createIcon`); not package surface — products use `createIcon`.\n */\nexport function Icon({\n size = 24,\n strokeWidth,\n viewBox = DEFAULT_VIEW_BOX,\n className,\n style,\n title,\n children,\n ...props\n}: IconProps & { children: React.ReactNode }) {\n const px = iconSizePx(size);\n // The pixel attributes are the no-CSS fallback; a named size is a token so\n // that themes and dense layouts can retune every icon at once.\n const box =\n typeof size === \"string\" ? { width: iconSizeVar(size), height: iconSizeVar(size) } : undefined;\n return (\n <svg\n width={px}\n height={px}\n viewBox={viewBox}\n fill=\"none\"\n strokeWidth={strokeWidth ?? DEFAULT_STROKE_WIDTH}\n className={cn(\"ds:shrink-0\", className)}\n style={box || style ? { ...box, ...style } : undefined}\n {...(title !== undefined ? { role: \"img\" } : { \"aria-hidden\": \"true\" })}\n {...props}\n >\n {title !== undefined ? <title>{title}</title> : null}\n {children}\n </svg>\n );\n}\n\nexport interface IconDefinition {\n /** Component name, e.g. `\"ArchiveIcon\"`; becomes the `displayName`. */\n name: string;\n /**\n * What to draw. Path data strings become `currentColor` strokes with round\n * caps and joins, the catalogue's outline style; pass elements for anything\n * else (filled dots, rects, a mark's fixed colours). Elements must not set\n * their own `strokeWidth` — it lives on the root so the prop works.\n */\n paths: string | readonly string[] | React.ReactNode;\n /** Defaults to `\"0 0 24 24\"`. A product icon drawn on another grid sets its own. */\n viewBox?: string;\n /** This glyph's default stroke width when the caller passes none. Defaults to Lucide's 2. */\n strokeWidth?: number | string;\n}\n\nfunction isPathData(paths: IconDefinition[\"paths\"]): paths is string | readonly string[] {\n return (\n typeof paths === \"string\" ||\n (Array.isArray(paths) && paths.every((path) => typeof path === \"string\"))\n );\n}\n\n/**\n * Builds an icon component with the catalogue's props, sizing, stroke and\n * accessibility contract from path data or SVG elements. Products use it for\n * icons that are theirs (vendor logos, annotation shapes) without inlining\n * `<svg>` at call sites; the catalogue uses it for its newer glyphs.\n *\n * @example\n * const ArchiveIcon = createIcon({\n * name: \"ArchiveIcon\",\n * paths: [\"M3 3h18a1 1 0 011 1v3a1 1 0 01-1 1H3a1 1 0 01-1-1V4a1 1 0 011-1z\", \"M4 8v11a2 2 0 002 2h12a2 2 0 002-2V8\", \"M10 12h4\"],\n * });\n */\nexport function createIcon(definition: IconDefinition): IconComponent {\n const { name, paths, viewBox, strokeWidth: defaultStrokeWidth } = definition;\n const children = isPathData(paths)\n ? (typeof paths === \"string\" ? [paths] : paths).map((d, index) => (\n <path\n key={index}\n d={d}\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n ))\n : paths;\n function Component({ strokeWidth = defaultStrokeWidth, ...props }: IconProps) {\n return (\n <Icon strokeWidth={strokeWidth} viewBox={viewBox} {...props}>\n {children}\n </Icon>\n );\n }\n Component.displayName = name;\n return Component;\n}\n\n/** A glyph from the `lucide` package: its plain `[tag, attributes]` node list. */\nexport type LucideIconNode = readonly (readonly [\n tag: string,\n attributes: Readonly<Record<string, string | number | undefined>>,\n])[];\n\n/**\n * Builds a catalogue icon from a Lucide glyph. The node data comes from the\n * framework-free `lucide` package rather than `lucide-react`: its components\n * are `\"use client\"`, which would put a client boundary in front of every\n * icon and break the server-safe `/icons` entry. Rendering the data through\n * `Icon` keeps the catalogue's props and DOM contract. `filled` fills every\n * shape, for the few names whose glyph is a solid mark (`StarIcon`).\n * For the catalogue modules; not package surface.\n */\nexport function lucideIcon(\n name: string,\n node: LucideIconNode,\n { filled = false }: { filled?: boolean } = {},\n): IconComponent {\n return createIcon({\n name,\n paths: node.map(([tag, attributes], index) =>\n createElement(tag, {\n key: index,\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n ...(filled ? { fill: \"currentColor\" } : null),\n ...attributes,\n }),\n ),\n });\n}\n","import { CircleAlert } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const AlertCircleIcon = /* @__PURE__ */ lucideIcon(\"AlertCircleIcon\", CircleAlert);\n","import { TriangleAlert } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const AlertTriangleIcon = /* @__PURE__ */ lucideIcon(\"AlertTriangleIcon\", TriangleAlert);\n","import { Icon, type IconProps } from \"./icon-base\";\n\nexport function AlertTriangleSolidIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z\"\n />\n </Icon>\n );\n}\n","import { Archive } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ArchiveIcon = /* @__PURE__ */ lucideIcon(\"ArchiveIcon\", Archive);\n","import { ArrowDown } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ArrowDownIcon = /* @__PURE__ */ lucideIcon(\"ArrowDownIcon\", ArrowDown);\n","import { ArrowLeft } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ArrowLeftIcon = /* @__PURE__ */ lucideIcon(\"ArrowLeftIcon\", ArrowLeft);\n","import { ArrowRight } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ArrowRightIcon = /* @__PURE__ */ lucideIcon(\"ArrowRightIcon\", ArrowRight);\n","import { ArrowRightIcon } from \"./arrow-right-icon\";\n\n/**\n * @deprecated Use `ArrowRightIcon` — it is the same path; \"small\" was never a\n * different drawing. This alias is the identical component and stays through 2.x.\n */\nexport const ArrowRightSmallIcon = ArrowRightIcon;\n","import { ArrowUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ArrowUpIcon = /* @__PURE__ */ lucideIcon(\"ArrowUpIcon\", ArrowUp);\n","import { ArrowUpRight } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Opens or jumps to the item — an arrow leaving the top-right corner. */\nexport const ArrowUpRightIcon = /* @__PURE__ */ lucideIcon(\"ArrowUpRightIcon\", ArrowUpRight);\n","import { AtSign } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const AtSignIcon = /* @__PURE__ */ lucideIcon(\"AtSignIcon\", AtSign);\n","import { Ban } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Not allowed / blocked / voided. */\nexport const BanIcon = /* @__PURE__ */ lucideIcon(\"BanIcon\", Ban);\n","import { ChartNoAxesColumn } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const BarChartIcon = /* @__PURE__ */ lucideIcon(\"BarChartIcon\", ChartNoAxesColumn);\n","import { Bell } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const BellIcon = /* @__PURE__ */ lucideIcon(\"BellIcon\", Bell);\n","import { Bold } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const BoldIcon = /* @__PURE__ */ lucideIcon(\"BoldIcon\", Bold);\n","import { Brain } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const BrainIcon = /* @__PURE__ */ lucideIcon(\"BrainIcon\", Brain);\n","import { Briefcase } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const BriefcaseIcon = /* @__PURE__ */ lucideIcon(\"BriefcaseIcon\", Briefcase);\n","import { Building2 } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const Building2Icon = /* @__PURE__ */ lucideIcon(\"Building2Icon\", Building2);\n","import { Building } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const BuildingIcon = /* @__PURE__ */ lucideIcon(\"BuildingIcon\", Building);\n","import { Calculator } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Calculator — a computed amount or a calculation tool. */\nexport const CalculatorIcon = /* @__PURE__ */ lucideIcon(\"CalculatorIcon\", Calculator);\n","import { Calendar } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CalendarIcon = /* @__PURE__ */ lucideIcon(\"CalendarIcon\", Calendar);\n","import { Camera } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Take or attach a photo. */\nexport const CameraIcon = /* @__PURE__ */ lucideIcon(\"CameraIcon\", Camera);\n","import { MessageSquare } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ChatBubbleIcon = /* @__PURE__ */ lucideIcon(\"ChatBubbleIcon\", MessageSquare);\n","import { CheckCheck } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Double tick — delivered or read. */\nexport const CheckCheckIcon = /* @__PURE__ */ lucideIcon(\"CheckCheckIcon\", CheckCheck);\n","import { CircleCheck } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CheckCircle2Icon = /* @__PURE__ */ lucideIcon(\"CheckCircle2Icon\", CircleCheck);\n","import { Icon, type IconProps } from \"./icon-base\";\n\nexport function CheckCircleSolidIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 0 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\"\n />\n </Icon>\n );\n}\n","import { Check } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CheckIcon = /* @__PURE__ */ lucideIcon(\"CheckIcon\", Check);\n","import { ChevronDown } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ChevronDownIcon = /* @__PURE__ */ lucideIcon(\"ChevronDownIcon\", ChevronDown);\n","import { ChevronLeft } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ChevronLeftIcon = /* @__PURE__ */ lucideIcon(\"ChevronLeftIcon\", ChevronLeft);\n","import { ChevronRight } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ChevronRightIcon = /* @__PURE__ */ lucideIcon(\"ChevronRightIcon\", ChevronRight);\n","import { ChevronUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ChevronUpIcon = /* @__PURE__ */ lucideIcon(\"ChevronUpIcon\", ChevronUp);\n","import { ChevronsDownUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Collapse — the pair of `ChevronsUpDownIcon`. */\nexport const ChevronsDownUpIcon = /* @__PURE__ */ lucideIcon(\"ChevronsDownUpIcon\", ChevronsDownUp);\n","import { ChevronsLeft } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Collapse to the left / jump to the start. */\nexport const ChevronsLeftIcon = /* @__PURE__ */ lucideIcon(\"ChevronsLeftIcon\", ChevronsLeft);\n","import { ChevronsRight } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Expand to the right / jump to the end. */\nexport const ChevronsRightIcon = /* @__PURE__ */ lucideIcon(\"ChevronsRightIcon\", ChevronsRight);\n","import { ChevronsUpDown } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ChevronsUpDownIcon = /* @__PURE__ */ lucideIcon(\"ChevronsUpDownIcon\", ChevronsUpDown);\n","import { CircleDot } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CircleDotIcon = /* @__PURE__ */ lucideIcon(\"CircleDotIcon\", CircleDot);\n","import { Circle } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CircleIcon = /* @__PURE__ */ lucideIcon(\"CircleIcon\", Circle);\n","import { ClipboardCheck } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ClipboardCheckIcon = /* @__PURE__ */ lucideIcon(\"ClipboardCheckIcon\", ClipboardCheck);\n","import { Clock } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ClockIcon = /* @__PURE__ */ lucideIcon(\"ClockIcon\", Clock);\n","import { X } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const XIcon = /* @__PURE__ */ lucideIcon(\"XIcon\", X);\n","import { XIcon } from \"./x-icon\";\n\n/**\n * @deprecated Use `XIcon` — the same glyph under its lucide name (the catalogue\n * drew it twice). This alias is the identical component and stays through 2.x.\n */\nexport const CloseIcon = XIcon;\n","import { Command } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CommandIcon = /* @__PURE__ */ lucideIcon(\"CommandIcon\", Command);\n","import { Copy } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CopyIcon = /* @__PURE__ */ lucideIcon(\"CopyIcon\", Copy);\n","import { CornerDownLeft } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CornerDownLeftIcon = /* @__PURE__ */ lucideIcon(\"CornerDownLeftIcon\", CornerDownLeft);\n","import { CreditCard } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const CreditCardIcon = /* @__PURE__ */ lucideIcon(\"CreditCardIcon\", CreditCard);\n","import { FileText } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FileTextIcon = /* @__PURE__ */ lucideIcon(\"FileTextIcon\", FileText);\n","import { FileTextIcon } from \"./file-text-icon\";\n\n/** The same glyph as `FileTextIcon` (Lucide `file-text`), under its older name. */\nexport const DocumentIcon = FileTextIcon;\n","import { DollarSign } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const DollarSignIcon = /* @__PURE__ */ lucideIcon(\"DollarSignIcon\", DollarSign);\n","import { Download } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const DownloadIcon = /* @__PURE__ */ lucideIcon(\"DownloadIcon\", Download);\n","import { ExternalLink } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Pop-out / opens elsewhere — box with an arrow leaving the top-right corner. */\nexport const ExternalLinkIcon = /* @__PURE__ */ lucideIcon(\"ExternalLinkIcon\", ExternalLink);\n","import { useId } from \"react\";\n\nimport { cn } from \"../lib/cn\";\nimport { iconSizePx, type IconProps } from \"./icon-base\";\n\n/**\n * ExtractIcon — gradient (Pro purple → cyan) tri-sparkle used for AI\n * \"Extract\" affordances. Unlike the currentColor catalog, the fill is a\n * fixed brand gradient; `size` scales it while preserving the 16:12 ratio.\n * Gradient/clip ids are per-instance (useId) so multiple icons don't clash.\n */\nexport function ExtractIcon({ size = 16, className, ...props }: IconProps) {\n const uid = useId();\n const gradId = `extract-grad-${uid}`;\n const clipId = `extract-clip-${uid}`;\n const px = iconSizePx(size);\n return (\n <svg\n width={px}\n height={(px * 12) / 16}\n viewBox=\"0 0 16 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={cn(\"ds:shrink-0\", className)}\n aria-hidden=\"true\"\n {...props}\n >\n <g clipPath={`url(#${clipId})`}>\n <path\n d=\"M6.24553 5.34293C5.91553 5.23294 5.91553 4.76699 6.24553 4.657L8.18254 4.01207C8.60834 3.87011 8.99522 3.63094 9.31252 3.3135C9.62982 2.99607 9.8688 2.6091 10.0105 2.18327L10.6555 0.247473C10.7655 -0.0824911 11.2315 -0.0824912 11.3415 0.247473L11.9866 2.18427C12.1285 2.61002 12.3677 2.99686 12.6852 3.31412C13.0027 3.63139 13.3897 3.87035 13.8156 4.01207L15.7516 4.657C15.8238 4.68071 15.8868 4.72664 15.9314 4.78823C15.976 4.84982 16 4.92392 16 4.99996C16 5.07601 15.976 5.15011 15.9314 5.2117C15.8868 5.27329 15.8238 5.31921 15.7516 5.34293L13.8146 5.98786C13.3889 6.12971 13.0021 6.36874 12.6848 6.68599C12.3675 7.00324 12.1284 7.39001 11.9866 7.81566L11.3415 9.75245C11.3178 9.82471 11.2719 9.88763 11.2103 9.93223C11.1487 9.97684 11.0746 10.0009 10.9985 10.0009C10.9225 10.0009 10.8484 9.97684 10.7868 9.93223C10.7252 9.88763 10.6793 9.82471 10.6555 9.75245L10.0105 7.81566C9.86867 7.39001 9.62962 7.00324 9.31233 6.68599C8.99505 6.36874 8.60823 6.12971 8.18254 5.98786L6.24553 5.34293ZM1.14651 9.20551C1.1032 9.19117 1.06552 9.16355 1.03881 9.12658C1.0121 9.0896 0.99772 9.04515 0.99772 8.99954C0.99772 8.95392 1.0121 8.90947 1.03881 8.87249C1.06552 8.83552 1.1032 8.8079 1.14651 8.79356L2.30851 8.4066C2.82651 8.23362 3.23252 7.82766 3.40552 7.30972L3.79252 6.14784C3.80686 6.10454 3.83448 6.06686 3.87146 6.04015C3.90844 6.01345 3.9529 5.99907 3.99852 5.99907C4.04414 5.99907 4.0886 6.01345 4.12558 6.04015C4.16256 6.06686 4.19018 6.10454 4.20452 6.14784L4.59152 7.30972C4.67664 7.56516 4.82009 7.79728 5.0105 7.98767C5.20091 8.17806 5.43305 8.32149 5.68853 8.4066L6.85053 8.79356C6.89384 8.8079 6.93152 8.83551 6.95823 8.87249C6.98494 8.90947 6.99932 8.95392 6.99932 8.99954C6.99932 9.04515 6.98494 9.0896 6.95823 9.12658C6.93152 9.16355 6.89384 9.19117 6.85053 9.20551L5.68853 9.59247C5.43305 9.67758 5.20091 9.82101 5.0105 10.0114C4.82009 10.2018 4.67664 10.4339 4.59152 10.6894L4.20452 11.8512C4.19018 11.8945 4.16256 11.9322 4.12558 11.9589C4.0886 11.9856 4.04414 12 3.99852 12C3.9529 12 3.90844 11.9856 3.87146 11.9589C3.83448 11.9322 3.80686 11.8945 3.79252 11.8512L3.40552 10.6894C3.3204 10.4339 3.17695 10.2018 2.98654 10.0114C2.79613 9.82101 2.56399 9.67758 2.30851 9.59247L1.14651 9.20551ZM0.097503 2.13727C0.0690292 2.1274 0.0443387 2.1089 0.0268643 2.08435C0.00938996 2.0598 1.317e-09 2.03042 0 2.00029C-1.318e-09 1.97015 0.00938995 1.94077 0.0268643 1.91622C0.0443387 1.89167 0.0690292 1.87317 0.097503 1.8633L0.871506 1.60533C1.21751 1.49034 1.48851 1.21937 1.60351 0.873408L1.86151 0.0994903C1.87138 0.0710193 1.88988 0.0463306 1.91443 0.0288584C1.93899 0.0113861 1.96837 0.00199815 1.99851 0.00199814C2.02865 0.00199814 2.05803 0.0113861 2.08259 0.0288583C2.10714 0.0463306 2.12564 0.0710193 2.13551 0.0994903L2.39351 0.873408C2.45024 1.0439 2.54593 1.19882 2.673 1.32588C2.80006 1.45293 2.955 1.54861 3.12552 1.60533L3.89952 1.8633C3.92799 1.87317 3.95268 1.89167 3.97016 1.91622C3.98763 1.94077 3.99702 1.97015 3.99702 2.00029C3.99702 2.03042 3.98763 2.0598 3.97016 2.08435C3.95268 2.1089 3.92799 2.1274 3.89952 2.13727L3.12552 2.39524C2.955 2.45196 2.80006 2.54764 2.673 2.6747C2.54593 2.80175 2.45024 2.95667 2.39351 3.12717L2.13551 3.90008C2.12564 3.92855 2.10714 3.95324 2.08259 3.97071C2.05804 3.98819 2.02865 3.99757 1.99851 3.99757C1.96837 3.99757 1.93899 3.98819 1.91443 3.97071C1.88988 3.95324 1.87138 3.92855 1.86151 3.90008L1.60351 3.12617C1.48851 2.7802 1.21751 2.50923 0.871506 2.39424L0.097503 2.13727Z\"\n fill={`url(#${gradId})`}\n />\n </g>\n <defs>\n <linearGradient\n id={gradId}\n x1=\"0.265576\"\n y1=\"0.856805\"\n x2=\"13.5\"\n y2=\"12\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#9E32FF\" />\n <stop offset=\"1\" stopColor=\"#1BB6FF\" />\n </linearGradient>\n <clipPath id={clipId}>\n <rect width=\"16\" height=\"12\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n}\n","import { Eye } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const EyeIcon = /* @__PURE__ */ lucideIcon(\"EyeIcon\", Eye);\n","import { EyeOff } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const EyeOffIcon = /* @__PURE__ */ lucideIcon(\"EyeOffIcon\", EyeOff);\n","import { FileChartColumn } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** A report document — a page with a column chart. */\nexport const FileChartColumnIcon = /* @__PURE__ */ lucideIcon(\n \"FileChartColumnIcon\",\n FileChartColumn,\n);\n","import { File } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FileIcon = /* @__PURE__ */ lucideIcon(\"FileIcon\", File);\n","import { FileUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FileReturnIcon = /* @__PURE__ */ lucideIcon(\"FileReturnIcon\", FileUp);\n","import { Funnel } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/**\n * FilterIcon — funnel mark used for filter popover triggers across list\n * pages (clients, workflow, billing, organizers…) — Lucide `funnel`. Pair\n * with a corner notification dot to surface active filter count.\n */\nexport const FilterIcon = /* @__PURE__ */ lucideIcon(\"FilterIcon\", Funnel);\n","import { Flag } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FlagIcon = /* @__PURE__ */ lucideIcon(\"FlagIcon\", Flag);\n","import { Folder } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FolderClosedIcon = /* @__PURE__ */ lucideIcon(\"FolderClosedIcon\", Folder);\n","import { FolderDown } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Download a folder's contents. */\nexport const FolderDownIcon = /* @__PURE__ */ lucideIcon(\"FolderDownIcon\", FolderDown);\n","import { FolderOpen } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FolderOpenIcon = /* @__PURE__ */ lucideIcon(\"FolderOpenIcon\", FolderOpen);\n","import { FolderPlus } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const FolderPlusIcon = /* @__PURE__ */ lucideIcon(\"FolderPlusIcon\", FolderPlus);\n","import { FolderUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Folder with an up-arrow — the \"upload documents\" / document-request mark. */\nexport const FolderUpIcon = /* @__PURE__ */ lucideIcon(\"FolderUpIcon\", FolderUp);\n","import { Globe } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const GlobeIcon = /* @__PURE__ */ lucideIcon(\"GlobeIcon\", Globe);\n","import { Icon, type IconProps } from \"./icon-base\";\n\n// Tier E — brand icons (multi-color, brand-locked). These DO NOT respond\n// to `currentColor` or `color-*` token classes — that's by design. Use\n// only inside OAuth buttons, integration chips, and provider-list UIs.\n// All other \"icon\" usages should stay in the semantic catalog above.\n// Suffixed `BrandIcon` to make the different contract obvious at the\n// call site.\n/**\n * GoogleBrandIcon — Google four-color \"G\" mark. Brand-locked colors,\n * does NOT respond to currentColor. Use only in provider-list UIs\n * (OAuth buttons, integration chips). Standard 24-grid.\n */\nexport function GoogleBrandIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n fill=\"#4285F4\"\n d=\"M22 12.27c0-.71-.06-1.4-.18-2.07H12v3.93h5.59a4.78 4.78 0 01-2.07 3.14v2.6h3.34c1.95-1.8 3.08-4.45 3.08-7.6z\"\n />\n <path\n fill=\"#34A853\"\n d=\"M12 22.5c2.81 0 5.16-.93 6.88-2.52l-3.34-2.6c-.93.62-2.11.99-3.54.99-2.72 0-5.03-1.84-5.86-4.31H2.69v2.69A10.5 10.5 0 0012 22.5z\"\n />\n <path\n fill=\"#FBBC05\"\n d=\"M6.14 14.06A6.3 6.3 0 015.8 12c0-.71.12-1.4.34-2.06V7.25H2.69A10.5 10.5 0 001.5 12c0 1.7.41 3.3 1.19 4.75l3.45-2.69z\"\n />\n <path\n fill=\"#EA4335\"\n d=\"M12 5.63c1.53 0 2.91.53 4 1.56l3-3C17.16 2.47 14.8 1.5 12 1.5A10.5 10.5 0 002.69 7.25l3.45 2.69C7 7.47 9.28 5.63 12 5.63z\"\n />\n </Icon>\n );\n}\n","import { GraduationCap } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Learning — tours, tutorials and training. */\nexport const GraduationCapIcon = /* @__PURE__ */ lucideIcon(\"GraduationCapIcon\", GraduationCap);\n","import { GripHorizontal } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Six-dot drag handle for horizontally dragged tiles and widgets. */\nexport const GripHorizontalIcon = /* @__PURE__ */ lucideIcon(\"GripHorizontalIcon\", GripHorizontal);\n","import { GripVertical } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Six-dot drag handle for sortable rows and kanban cards. */\nexport const GripVerticalIcon = /* @__PURE__ */ lucideIcon(\"GripVerticalIcon\", GripVertical);\n","import { CircleQuestionMark } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const HelpCircleIcon = /* @__PURE__ */ lucideIcon(\"HelpCircleIcon\", CircleQuestionMark);\n","import { History } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const HistoryIcon = /* @__PURE__ */ lucideIcon(\"HistoryIcon\", History);\n","import { House } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const HomeIcon = /* @__PURE__ */ lucideIcon(\"HomeIcon\", House);\n","import { Inbox } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const InboxIcon = /* @__PURE__ */ lucideIcon(\"InboxIcon\", Inbox);\n","import { Icon, type IconProps } from \"./icon-base\";\n\nexport function InfoCircleSolidIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm8.706-1.442c1.146-.573 2.437.463 2.126 1.706l-.709 2.836.042-.02a.75.75 0 0 1 .67 1.342l-.04.022c-1.147.573-2.438-.463-2.127-1.706l.71-2.836-.042.02a.75.75 0 1 1-.671-1.341l.041-.022ZM12 9a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z\"\n />\n </Icon>\n );\n}\n","import { Info } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const InfoIcon = /* @__PURE__ */ lucideIcon(\"InfoIcon\", Info);\n","import { Italic } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ItalicIcon = /* @__PURE__ */ lucideIcon(\"ItalicIcon\", Italic);\n","import { Kanban } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const KanbanIcon = /* @__PURE__ */ lucideIcon(\"KanbanIcon\", Kanban);\n","import { Key } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const KeyIcon = /* @__PURE__ */ lucideIcon(\"KeyIcon\", Key);\n","import { Landmark } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Landmark / \"bank\" glyph (columns + pediment) — the accounting service mark. */\nexport const LandmarkIcon = /* @__PURE__ */ lucideIcon(\"LandmarkIcon\", Landmark);\n","import { Layers } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LayersIcon = /* @__PURE__ */ lucideIcon(\"LayersIcon\", Layers);\n","import { LayoutDashboard } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LayoutDashboardIcon = /* @__PURE__ */ lucideIcon(\n \"LayoutDashboardIcon\",\n LayoutDashboard,\n);\n","import { LayoutGrid } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LayoutGridIcon = /* @__PURE__ */ lucideIcon(\"LayoutGridIcon\", LayoutGrid);\n","import { LayoutList } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LayoutListIcon = /* @__PURE__ */ lucideIcon(\"LayoutListIcon\", LayoutList);\n","import { Zap } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LightningIcon = /* @__PURE__ */ lucideIcon(\"LightningIcon\", Zap);\n","import { Link2 } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const Link2Icon = /* @__PURE__ */ lucideIcon(\"Link2Icon\", Link2);\n","import { Link } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LinkIcon = /* @__PURE__ */ lucideIcon(\"LinkIcon\", Link);\n","import { ListChecks } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ListChecksIcon = /* @__PURE__ */ lucideIcon(\"ListChecksIcon\", ListChecks);\n","import { List } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ListIcon = /* @__PURE__ */ lucideIcon(\"ListIcon\", List);\n","import { ListOrdered } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ListOrderedIcon = /* @__PURE__ */ lucideIcon(\"ListOrderedIcon\", ListOrdered);\n","import { LoaderCircle } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/**\n * LoaderIcon — animated spinner (Lucide `loader-circle`). Render with\n * `className=\"animate-spin\"` (or `motion-safe:animate-spin` if you want to\n * respect `prefers-reduced-motion`; the catalog doesn't gate this itself\n * because the spinner IS the indicator for many flows).\n *\n * Visual contract: a three-quarter arc whose open end reads as the spinner's\n * leading edge when rotated.\n */\nexport const LoaderIcon = /* @__PURE__ */ lucideIcon(\"LoaderIcon\", LoaderCircle);\n","import { Lock } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LockIcon = /* @__PURE__ */ lucideIcon(\"LockIcon\", Lock);\n","import { LockKeyhole } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LockKeyholeIcon = /* @__PURE__ */ lucideIcon(\"LockKeyholeIcon\", LockKeyhole);\n","import { LockOpen } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LockOpenIcon = /* @__PURE__ */ lucideIcon(\"LockOpenIcon\", LockOpen);\n","import { LogOut } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const LogOutIcon = /* @__PURE__ */ lucideIcon(\"LogOutIcon\", LogOut);\n","import { Mail } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MailIcon = /* @__PURE__ */ lucideIcon(\"MailIcon\", Mail);\n","import { MapPin } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MapPinIcon = /* @__PURE__ */ lucideIcon(\"MapPinIcon\", MapPin);\n","import { Maximize } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Enter full screen / expand a panel — four outward corners. */\nexport const MaximizeIcon = /* @__PURE__ */ lucideIcon(\"MaximizeIcon\", Maximize);\n","import { Menu } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MenuIcon = /* @__PURE__ */ lucideIcon(\"MenuIcon\", Menu);\n","import { MessageCircle } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MessageCircleIcon = /* @__PURE__ */ lucideIcon(\"MessageCircleIcon\", MessageCircle);\n","import { MessageCircleMore } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Chat with an ellipsis — a conversation, or someone typing. */\nexport const MessageCircleMoreIcon = /* @__PURE__ */ lucideIcon(\n \"MessageCircleMoreIcon\",\n MessageCircleMore,\n);\n","import { MessageCircleWarning } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MessageCircleWarningIcon = /* @__PURE__ */ lucideIcon(\n \"MessageCircleWarningIcon\",\n MessageCircleWarning,\n);\n","import { Mic } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MicIcon = /* @__PURE__ */ lucideIcon(\"MicIcon\", Mic);\n","import { Icon, type IconProps } from \"./icon-base\";\n\n/**\n * MicrosoftBrandIcon — Microsoft four-square mark in red / green / blue /\n * yellow. Brand-locked colors, does NOT respond to currentColor. Use\n * inside Microsoft OAuth signin buttons, Outlook / Office integration\n * chips, and similar provider-list UIs. Standard 24-grid (10×10 squares\n * with 2u gaps).\n */\nexport function MicrosoftBrandIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"1\" y=\"1\" width=\"10\" height=\"10\" fill=\"#F25022\" />\n <rect x=\"13\" y=\"1\" width=\"10\" height=\"10\" fill=\"#7FBA00\" />\n <rect x=\"1\" y=\"13\" width=\"10\" height=\"10\" fill=\"#00A4EF\" />\n <rect x=\"13\" y=\"13\" width=\"10\" height=\"10\" fill=\"#FFB900\" />\n </Icon>\n );\n}\n","import { Minimize } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Leave full screen / shrink a panel — four inward corners. */\nexport const MinimizeIcon = /* @__PURE__ */ lucideIcon(\"MinimizeIcon\", Minimize);\n","import { Minus } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MinusIcon = /* @__PURE__ */ lucideIcon(\"MinusIcon\", Minus);\n","import { Monitor } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MonitorIcon = /* @__PURE__ */ lucideIcon(\"MonitorIcon\", Monitor);\n","import { Moon } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MoonIcon = /* @__PURE__ */ lucideIcon(\"MoonIcon\", Moon);\n","import { Ellipsis } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MoreHorizontalIcon = /* @__PURE__ */ lucideIcon(\"MoreHorizontalIcon\", Ellipsis);\n","import { EllipsisVertical } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Row or card overflow menu — the vertical pair of `MoreHorizontalIcon`. */\nexport const MoreVerticalIcon = /* @__PURE__ */ lucideIcon(\"MoreVerticalIcon\", EllipsisVertical);\n","import { MousePointer2 } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Pointer / select tool. */\nexport const MousePointer2Icon = /* @__PURE__ */ lucideIcon(\"MousePointer2Icon\", MousePointer2);\n","import { Move } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const MoveIcon = /* @__PURE__ */ lucideIcon(\"MoveIcon\", Move);\n","import { Palette } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PaletteIcon = /* @__PURE__ */ lucideIcon(\"PaletteIcon\", Palette);\n","import { PanelLeftClose } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PanelLeftCloseIcon = /* @__PURE__ */ lucideIcon(\"PanelLeftCloseIcon\", PanelLeftClose);\n","import { PanelLeft } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PanelLeftIcon = /* @__PURE__ */ lucideIcon(\"PanelLeftIcon\", PanelLeft);\n","import { PanelRightClose } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Collapse the right panel — the mirror of `PanelLeftCloseIcon`. */\nexport const PanelRightCloseIcon = /* @__PURE__ */ lucideIcon(\n \"PanelRightCloseIcon\",\n PanelRightClose,\n);\n","import { PanelRight } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Dock to the right — the mirror of `PanelLeftIcon`. */\nexport const PanelRightIcon = /* @__PURE__ */ lucideIcon(\"PanelRightIcon\", PanelRight);\n","import { Paperclip } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PaperclipIcon = /* @__PURE__ */ lucideIcon(\"PaperclipIcon\", Paperclip);\n","import { Pause } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PauseIcon = /* @__PURE__ */ lucideIcon(\"PauseIcon\", Pause);\n","import { Signature } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PenSignIcon = /* @__PURE__ */ lucideIcon(\"PenSignIcon\", Signature);\n","import { PenTool } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Pen-tool / nibbed signature pen — the e-signature mark. */\nexport const PenToolIcon = /* @__PURE__ */ lucideIcon(\"PenToolIcon\", PenTool);\n","import { Pencil } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PencilIcon = /* @__PURE__ */ lucideIcon(\"PencilIcon\", Pencil);\n","import { Phone } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PhoneIcon = /* @__PURE__ */ lucideIcon(\"PhoneIcon\", Phone);\n","import { Play } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PlayIcon = /* @__PURE__ */ lucideIcon(\"PlayIcon\", Play);\n","import { Plus } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const PlusIcon = /* @__PURE__ */ lucideIcon(\"PlusIcon\", Plus);\n","import { Receipt } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ReceiptIcon = /* @__PURE__ */ lucideIcon(\"ReceiptIcon\", Receipt);\n","import { RefreshCw } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Two clockwise arrows — refresh / sync. `RotateCcwIcon` is the single-arrow undo. */\nexport const RefreshCwIcon = /* @__PURE__ */ lucideIcon(\"RefreshCwIcon\", RefreshCw);\n","import { Reply } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ReplyIcon = /* @__PURE__ */ lucideIcon(\"ReplyIcon\", Reply);\n","import { RotateCcw } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const RotateCcwIcon = /* @__PURE__ */ lucideIcon(\"RotateCcwIcon\", RotateCcw);\n","import { Rows4 } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const Rows4Icon = /* @__PURE__ */ lucideIcon(\"Rows4Icon\", Rows4);\n","import { Rows } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const RowsIcon = /* @__PURE__ */ lucideIcon(\"RowsIcon\", Rows);\n","import { Save } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SaveIcon = /* @__PURE__ */ lucideIcon(\"SaveIcon\", Save);\n","import { Search } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SearchIcon = /* @__PURE__ */ lucideIcon(\"SearchIcon\", Search);\n","import { Send } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SendIcon = /* @__PURE__ */ lucideIcon(\"SendIcon\", Send);\n","import { Settings } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SettingsIcon = /* @__PURE__ */ lucideIcon(\"SettingsIcon\", Settings);\n","import { Shield } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ShieldIcon = /* @__PURE__ */ lucideIcon(\"ShieldIcon\", Shield);\n","import { Sigma } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Formula / sum — the Greek capital sigma. */\nexport const SigmaIcon = /* @__PURE__ */ lucideIcon(\"SigmaIcon\", Sigma);\n","import { Slash } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SlashIcon = /* @__PURE__ */ lucideIcon(\"SlashIcon\", Slash);\n","import { Smartphone } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SmartphoneIcon = /* @__PURE__ */ lucideIcon(\"SmartphoneIcon\", Smartphone);\n","import { Sparkle } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SparkleIcon = /* @__PURE__ */ lucideIcon(\"SparkleIcon\", Sparkle);\n","import { Sparkles } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SparklesIcon = /* @__PURE__ */ lucideIcon(\"SparklesIcon\", Sparkles);\n","import { SquarePlay } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** A video item — a play mark in a frame; `PlayIcon` is the playback control. */\nexport const SquarePlayIcon = /* @__PURE__ */ lucideIcon(\"SquarePlayIcon\", SquarePlay);\n","import { Star } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const StarIcon = /* @__PURE__ */ lucideIcon(\"StarIcon\", Star, { filled: true });\n","import { Square } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const StopIcon = /* @__PURE__ */ lucideIcon(\"StopIcon\", Square, { filled: true });\n","import { Strikethrough } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const StrikethroughIcon = /* @__PURE__ */ lucideIcon(\"StrikethroughIcon\", Strikethrough);\n","import { Sun } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const SunIcon = /* @__PURE__ */ lucideIcon(\"SunIcon\", Sun);\n","import { Table } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const TableIcon = /* @__PURE__ */ lucideIcon(\"TableIcon\", Table);\n","import { Tag } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const TagIcon = /* @__PURE__ */ lucideIcon(\"TagIcon\", Tag);\n","import { UserPlus } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const TeamIcon = /* @__PURE__ */ lucideIcon(\"TeamIcon\", UserPlus);\n","import { ThumbsDown } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ThumbsDownIcon = /* @__PURE__ */ lucideIcon(\"ThumbsDownIcon\", ThumbsDown);\n","import { ThumbsUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ThumbsUpIcon = /* @__PURE__ */ lucideIcon(\"ThumbsUpIcon\", ThumbsUp);\n","import { Timer } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Stopwatch — elapsed time and timers; `ClockIcon` is wall-clock time. */\nexport const TimerIcon = /* @__PURE__ */ lucideIcon(\"TimerIcon\", Timer);\n","import { Trash } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const TrashIcon = /* @__PURE__ */ lucideIcon(\"TrashIcon\", Trash);\n","import { TrashIcon } from \"./trash-icon\";\n\n/** The same glyph as `TrashIcon`: Lucide merged `trash-2` into `trash`. */\nexport const Trash2Icon = TrashIcon;\n","import { createIcon } from \"./icon-base\";\n\n/**\n * Filled trash can for destructive affordances inside small round buttons,\n * where the outline `TrashIcon` reads as thin. Same family as the solid status\n * icons: the slots are knockouts.\n */\nexport const TrashSolidIcon = /* @__PURE__ */ createIcon({\n name: \"TrashSolidIcon\",\n paths: (\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M10 2h4a1 1 0 011 1v1h4a1 1 0 110 2H5a1 1 0 110-2h4V3a1 1 0 011-1zM6 7.5h12l-.87 12.14a2 2 0 01-1.99 1.86H8.86a2 2 0 01-1.99-1.86L6 7.5zm3.75 3v7a.75.75 0 001.5 0v-7a.75.75 0 00-1.5 0zm3 0v7a.75.75 0 001.5 0v-7a.75.75 0 00-1.5 0z\"\n />\n ),\n});\n","import { TrendingDown } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const TrendingDownIcon = /* @__PURE__ */ lucideIcon(\"TrendingDownIcon\", TrendingDown);\n","import { TrendingUp } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const TrendingUpIcon = /* @__PURE__ */ lucideIcon(\"TrendingUpIcon\", TrendingUp);\n","import { Type } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Text / typography — a text block or a text field. */\nexport const TypeIcon = /* @__PURE__ */ lucideIcon(\"TypeIcon\", Type);\n","import { Underline } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const UnderlineIcon = /* @__PURE__ */ lucideIcon(\"UnderlineIcon\", Underline);\n","import { Upload } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const UploadIcon = /* @__PURE__ */ lucideIcon(\"UploadIcon\", Upload);\n","import { CircleUser } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const UserCircleIcon = /* @__PURE__ */ lucideIcon(\"UserCircleIcon\", CircleUser);\n","import { User } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const UserIcon = /* @__PURE__ */ lucideIcon(\"UserIcon\", User);\n","import { Users } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const UsersIcon = /* @__PURE__ */ lucideIcon(\"UsersIcon\", Users);\n","import { Video } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Video camera; pair with `PlayIcon` for playback. */\nexport const VideoIcon = /* @__PURE__ */ lucideIcon(\"VideoIcon\", Video);\n","import { Volume2 } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Speaker with two sound waves — audio on. */\nexport const Volume2Icon = /* @__PURE__ */ lucideIcon(\"Volume2Icon\", Volume2);\n","import { VolumeX } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\n/** Speaker with a cross — muted. */\nexport const VolumeXIcon = /* @__PURE__ */ lucideIcon(\"VolumeXIcon\", VolumeX);\n","import { Workflow } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const WorkflowIcon = /* @__PURE__ */ lucideIcon(\"WorkflowIcon\", Workflow);\n","import { Icon, type IconProps } from \"./icon-base\";\n\nexport function XCircleSolidIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M12 2.25C6.615 2.25 2.25 6.615 2.25 12s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25Zm-1.72 6.97a.75.75 0 0 0-1.06 1.06L10.94 12l-1.72 1.72a.75.75 0 1 0 1.06 1.06L12 13.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L13.06 12l1.72-1.72a.75.75 0 1 0-1.06-1.06L12 10.94l-1.72-1.72Z\"\n />\n </Icon>\n );\n}\n","import { ZoomIn } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ZoomInIcon = /* @__PURE__ */ lucideIcon(\"ZoomInIcon\", ZoomIn);\n","import { ZoomOut } from \"lucide\";\n\nimport { lucideIcon } from \"./icon-base\";\n\nexport const ZoomOutIcon = /* @__PURE__ */ lucideIcon(\"ZoomOutIcon\", ZoomOut);\n"]}
|