@flamingo-stack/openframe-frontend-core 0.0.373 → 0.0.374-snapshot.20260706213442
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-DDI7FFA5.js → chunk-3FZIYSPL.js} +643 -597
- package/dist/{chunk-DDI7FFA5.js.map → chunk-3FZIYSPL.js.map} +1 -1
- package/dist/{chunk-4JIVPFPK.cjs → chunk-3JIT6THI.cjs} +25 -25
- package/dist/{chunk-4JIVPFPK.cjs.map → chunk-3JIT6THI.cjs.map} +1 -1
- package/dist/{chunk-TH2LDBFE.js → chunk-7QNRRRSM.js} +2 -2
- package/dist/{chunk-FCPUM5S2.cjs → chunk-BF3N6M25.cjs} +63 -63
- package/dist/chunk-BF3N6M25.cjs.map +1 -0
- package/dist/{chunk-4YQY3YBQ.js → chunk-CXIJ5GSA.js} +2 -2
- package/dist/{chunk-3QTBIUB7.cjs → chunk-D7COWKNF.cjs} +12 -12
- package/dist/{chunk-3QTBIUB7.cjs.map → chunk-D7COWKNF.cjs.map} +1 -1
- package/dist/{chunk-3N34BFBP.cjs → chunk-DGODYMGT.cjs} +15 -15
- package/dist/{chunk-3N34BFBP.cjs.map → chunk-DGODYMGT.cjs.map} +1 -1
- package/dist/{chunk-RHKIYRJJ.js → chunk-ELKKJLHS.js} +2 -2
- package/dist/{chunk-OTSWZF3C.js → chunk-FNYXXI7S.js} +4 -4
- package/dist/{chunk-X274IBXR.cjs → chunk-HBNDH3PK.cjs} +26 -26
- package/dist/{chunk-X274IBXR.cjs.map → chunk-HBNDH3PK.cjs.map} +1 -1
- package/dist/{chunk-MTT4SFN6.cjs → chunk-ICDR6TMV.cjs} +5 -5
- package/dist/{chunk-MTT4SFN6.cjs.map → chunk-ICDR6TMV.cjs.map} +1 -1
- package/dist/{chunk-IH4IPKF2.js → chunk-IPKLA4T7.js} +4 -4
- package/dist/{chunk-7YKIXCV3.cjs → chunk-JQ3PU7BN.cjs} +7 -7
- package/dist/{chunk-7YKIXCV3.cjs.map → chunk-JQ3PU7BN.cjs.map} +1 -1
- package/dist/{chunk-AFF6QBKL.cjs → chunk-KJKZXNJG.cjs} +37 -37
- package/dist/{chunk-AFF6QBKL.cjs.map → chunk-KJKZXNJG.cjs.map} +1 -1
- package/dist/{chunk-ANKXC5RY.cjs → chunk-QLXG7B35.cjs} +31 -31
- package/dist/{chunk-ANKXC5RY.cjs.map → chunk-QLXG7B35.cjs.map} +1 -1
- package/dist/{chunk-IDYD2EIV.js → chunk-QUNP6INX.js} +2 -2
- package/dist/{chunk-DUFK7RSU.js → chunk-QXCEAKVC.js} +2 -2
- package/dist/{chunk-CCBQGC44.js → chunk-SOXWEON4.js} +5 -5
- package/dist/chunk-SOXWEON4.js.map +1 -0
- package/dist/{chunk-XNP2LIYD.cjs → chunk-TKXTUA7E.cjs} +9 -9
- package/dist/{chunk-XNP2LIYD.cjs.map → chunk-TKXTUA7E.cjs.map} +1 -1
- package/dist/{chunk-JDYNGJSD.js → chunk-TVE5UZRB.js} +2 -2
- package/dist/{chunk-M4O75TCN.js → chunk-UHCRUHRY.js} +4 -4
- package/dist/{chunk-LD7WDZQC.js → chunk-XE3LR2T2.js} +2 -2
- package/dist/{chunk-4RUTFRJ6.cjs → chunk-YCQ5S353.cjs} +445 -399
- package/dist/chunk-YCQ5S353.cjs.map +1 -0
- package/dist/{chunk-6OJHTN7B.cjs → chunk-ZWBRUGKU.cjs} +57 -57
- package/dist/{chunk-6OJHTN7B.cjs.map → chunk-ZWBRUGKU.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/chat-container.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/chat/types/component.types.d.ts +14 -0
- package/dist/components/chat/types/component.types.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +20 -20
- package/dist/components/help-center-pages/index.js +11 -11
- package/dist/components/index.cjs +120 -120
- package/dist/components/index.js +9 -9
- package/dist/components/navigation/app-layout-drawer.d.ts.map +1 -1
- package/dist/components/navigation/app-layout.d.ts +20 -0
- package/dist/components/navigation/app-layout.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +5 -5
- package/dist/components/tickets/index.js +4 -4
- package/dist/components/ui/error-state.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/tailwind.config.cjs +24 -0
- package/dist/tailwind.config.cjs.map +1 -1
- package/dist/tailwind.config.js +24 -0
- package/dist/tailwind.config.js.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/chat-container.tsx +20 -1
- package/src/components/chat/types/component.types.ts +14 -0
- package/src/components/features/array-entry-manager.tsx +1 -1
- package/src/components/features/push-button-selector.tsx +3 -3
- package/src/components/navigation/app-layout-drawer.tsx +23 -1
- package/src/components/navigation/app-layout.tsx +50 -2
- package/src/components/tickets/ticket-detail-drawer.tsx +1 -1
- package/src/components/ui/error-state.tsx +5 -2
- package/src/stories/ChatContainer.stories.tsx +36 -0
- package/tailwind.config.ts +25 -0
- package/dist/chunk-4RUTFRJ6.cjs.map +0 -1
- package/dist/chunk-CCBQGC44.js.map +0 -1
- package/dist/chunk-FCPUM5S2.cjs.map +0 -1
- /package/dist/{chunk-TH2LDBFE.js.map → chunk-7QNRRRSM.js.map} +0 -0
- /package/dist/{chunk-4YQY3YBQ.js.map → chunk-CXIJ5GSA.js.map} +0 -0
- /package/dist/{chunk-RHKIYRJJ.js.map → chunk-ELKKJLHS.js.map} +0 -0
- /package/dist/{chunk-OTSWZF3C.js.map → chunk-FNYXXI7S.js.map} +0 -0
- /package/dist/{chunk-IH4IPKF2.js.map → chunk-IPKLA4T7.js.map} +0 -0
- /package/dist/{chunk-IDYD2EIV.js.map → chunk-QUNP6INX.js.map} +0 -0
- /package/dist/{chunk-DUFK7RSU.js.map → chunk-QXCEAKVC.js.map} +0 -0
- /package/dist/{chunk-JDYNGJSD.js.map → chunk-TVE5UZRB.js.map} +0 -0
- /package/dist/{chunk-M4O75TCN.js.map → chunk-UHCRUHRY.js.map} +0 -0
- /package/dist/{chunk-LD7WDZQC.js.map → chunk-XE3LR2T2.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/tailwindcss/lib/util/createPlugin.js","../node_modules/tailwindcss/lib/public/create-plugin.js","../node_modules/tailwindcss/plugin.js","../tailwind.config.ts"],"names":["plugin","config"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,oBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,mDAAA,CAAA,OAAA,EAAA;AACA,IAAA,MAAA,CAAO,cAAA,CAAe,SAAS,YAAA,EAAc;AAAA,MACzC,KAAA,EAAO;AAAA,KACV,CAAA;AACD,IAAA,MAAA,CAAO,cAAA,CAAe,SAAS,SAAA,EAAW;AAAA,MACtC,UAAA,EAAY,IAAA;AAAA,MACZ,KAAK,WAAW;AACZ,QAAA,OAAO,QAAA;AAAA,MACX;AAAA,KACH,CAAA;AACD,IAAA,SAAS,YAAA,CAAaA,SAAQC,OAAAA,EAAQ;AAClC,MAAA,OAAO;AAAA,QACH,OAAA,EAASD,OAAAA;AAAA,QACT,MAAA,EAAAC;AAAA,OACJ;AAAA,IACJ;AACA,IAAA,YAAA,CAAa,cAAc,SAAS,cAAA,EAAgB,cAAA,GAAiB,OAAK,EAAC,CAAA,EAAI;AAC3E,MAAA,MAAM,eAAA,GAAkB,SAAS,OAAA,EAAS;AACtC,QAAA,OAAO;AAAA,UACH,SAAA,EAAW,OAAA;AAAA,UACX,OAAA,EAAS,eAAe,OAAO,CAAA;AAAA,UAC/B,MAAA,EAAQ,eAAe,OAAO;AAAA,SAClC;AAAA,MACJ,CAAA;AACA,MAAA,eAAA,CAAgB,mBAAA,GAAsB,IAAA;AAGtC,MAAA,eAAA,CAAgB,gBAAA,GAAmB,cAAA;AACnC,MAAA,eAAA,CAAgB,gBAAA,GAAmB,cAAA;AACnC,MAAA,OAAO,eAAA;AAAA,IACX,CAAA;AACA,IAAA,IAAM,QAAA,GAAW,YAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;AC/BjB,IAAA,qBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,sDAAA,CAAA,OAAA,EAAA;AACA,IAAA,MAAA,CAAO,cAAA,CAAe,SAAS,YAAA,EAAc;AAAA,MACzC,KAAA,EAAO;AAAA,KACV,CAAA;AACD,IAAA,MAAA,CAAO,cAAA,CAAe,SAAS,SAAA,EAAW;AAAA,MACtC,UAAA,EAAY,IAAA;AAAA,MACZ,KAAK,WAAW;AACZ,QAAA,OAAO,QAAA;AAAA,MACX;AAAA,KACH,CAAA;AACD,IAAA,IAAM,aAAA,4CAAuD,oBAAA,EAA+B,CAAA;AAC5F,IAAA,SAAS,yBAAyB,GAAA,EAAK;AACnC,MAAA,OAAO,GAAA,IAAO,GAAA,CAAI,UAAA,GAAa,GAAA,GAAM;AAAA,QACjC,OAAA,EAAS;AAAA,OACb;AAAA,IACJ;AACA,IAAA,IAAM,WAAW,aAAA,CAAc,OAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;AChB/B,IAAA,cAAA,GAAA,UAAA,CAAA;AAAA,EAAA,oCAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AAAA,IAAA,IAAI,YAAA,GAAe,qBAAA,EAAA;AACnB,IAAA,MAAA,CAAO,WAAW,YAAA,CAAa,UAAA,GAAa,eAAe,EAAE,OAAA,EAAS,cAAa,EAAG,OAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACAtF,IAAA,aAAA,GAAmB,OAAA,CAAA,cAAA,EAAA,CAAA;AAInB,IAAM,0BAAsB,aAAA,CAAAD,OAAAA,EAAO,CAAC,EAAE,cAAa,KAAM;AACvD,EAAA,YAAA,CAAa;AAAA,IACX,UAAA,EAAY;AAAA,MACV,UAAA,EAAY,uBAAA;AAAA,MACZ,UAAA,EAAY,uBAAA;AAAA,MACZ,QAAA,EAAU,2BAAA;AAAA,MACV,UAAA,EAAY,sCAAA;AAAA,MACZ,aAAA,EAAe;AAAA,KACjB;AAAA,IACA,UAAA,EAAY;AAAA,MACV,UAAA,EAAY,uBAAA;AAAA,MACZ,UAAA,EAAY,uBAAA;AAAA,MACZ,QAAA,EAAU,+BAAA;AAAA,MACV,UAAA,EAAY,qCAAA;AAAA,MACZ,aAAA,EAAe;AAAA,KACjB;AAAA,IACA,UAAA,EAAY;AAAA,MACV,UAAA,EAAY,uBAAA;AAAA,MACZ,UAAA,EAAY,uBAAA;AAAA,MACZ,QAAA,EAAU,0BAAA;AAAA,MACV,UAAA,EAAY,gCAAA;AAAA,MACZ,aAAA,EAAe;AAAA,KACjB;AAAA,IACA,UAAA,EAAY;AAAA,MACV,UAAA,EAAY,uBAAA;AAAA,MACZ,UAAA,EAAY,uBAAA;AAAA,MACZ,QAAA,EAAU,0BAAA;AAAA,MACV,UAAA,EAAY;AAAA,KACd;AAAA,IACA,UAAA,EAAY;AAAA,MACV,UAAA,EAAY,uBAAA;AAAA,MACZ,UAAA,EAAY,uBAAA;AAAA,MACZ,QAAA,EAAU,6BAAA;AAAA,MACV,UAAA,EAAY,mCAAA;AAAA,MACZ,aAAA,EAAe,WAAA;AAAA,MACf,aAAA,EAAe;AAAA,KACjB;AAAA,IACA,UAAA,EAAY;AAAA,MACV,UAAA,EAAY,uBAAA;AAAA,MACZ,UAAA,EAAY,uBAAA;AAAA,MACZ,QAAA,EAAU,6BAAA;AAAA,MACV,UAAA,EAAY;AAAA;AACd,GACD,CAAA;AACH,CAAC,CAAA;AAED,IAAM,MAAA,GAAiB;AAAA,EACrB,OAAA,EAAS;AAAA,IACP;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA;AAAA,IAER,QAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,KAAA,EAAO;AAAA,IACL,SAAA,EAAW;AAAA,MACT,MAAA,EAAQ,IAAA;AAAA,MACR,OAAA,EAAS,MAAA;AAAA,MACT,OAAA,EAAS;AAAA,QACP,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ;AAAA;AAAA,QAEN,MAAA,EAAQ,oBAAA;AAAA,QACR,KAAA,EAAO,mBAAA;AAAA,QACP,IAAA,EAAM,kBAAA;AAAA,QACN,UAAA,EAAY,wBAAA;AAAA,QACZ,UAAA,EAAY,wBAAA;AAAA,QACZ,OAAA,EAAS;AAAA,UACP,OAAA,EAAS,qBAAA;AAAA,UACT,UAAA,EAAY;AAAA,SACd;AAAA,QACA,SAAA,EAAW;AAAA,UACT,OAAA,EAAS,uBAAA;AAAA,UACT,UAAA,EAAY;AAAA,SACd;AAAA,QACA,WAAA,EAAa;AAAA,UACX,OAAA,EAAS,yBAAA;AAAA,UACT,UAAA,EAAY;AAAA,SACd;AAAA,QACA,KAAA,EAAO;AAAA,UACL,OAAA,EAAS,mBAAA;AAAA,UACT,UAAA,EAAY;AAAA,SACd;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,OAAA,EAAS,oBAAA;AAAA,UACT,UAAA,EAAY;AAAA,SACd;AAAA,QACA,OAAA,EAAS;AAAA,UACP,OAAA,EAAS,qBAAA;AAAA,UACT,UAAA,EAAY;AAAA,SACd;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,OAAA,EAAS,kBAAA;AAAA,UACT,UAAA,EAAY;AAAA,SACd;AAAA;AAAA;AAAA;AAAA;AAAA,QAMA,GAAA,EAAK;AAAA;AAAA,UAEH,EAAA,EAAI,iBAAA;AAAA,UACJ,IAAA,EAAM,sBAAA;AAAA,UACN,OAAA,EAAS,yBAAA;AAAA,UACT,QAAA,EAAU,0BAAA;AAAA,UACV,UAAA,EAAY,uBAAA;AAAA,UACZ,WAAA,EAAa,wBAAA;AAAA,UACb,YAAA,EAAc,yBAAA;AAAA,UACd,YAAA,EAAc,uBAAA;AAAA,UACd,OAAA,EAAS,sBAAA;AAAA;AAAA,UAGT,MAAA,EAAQ;AAAA,YACN,OAAA,EAAS,6BAAA;AAAA,YACT,KAAA,EAAO,2BAAA;AAAA,YACP,MAAA,EAAQ,4BAAA;AAAA,YACR,KAAA,EAAO;AAAA,WACT;AAAA;AAAA,UAGA,IAAA,EAAM;AAAA,YACJ,OAAA,EAAS,2BAAA;AAAA,YACT,SAAA,EAAW,6BAAA;AAAA,YACX,QAAA,EAAU,4BAAA;AAAA,YACV,KAAA,EAAO,yBAAA;AAAA,YACP,MAAA,EAAQ,0BAAA;AAAA,YACR,QAAA,EAAU,4BAAA;AAAA,YACV,WAAA,EAAa,6BAAA;AAAA,YACb,SAAA,EAAW;AAAA,WACb;AAAA;AAAA,UAGA,MAAA,EAAQ;AAAA,YACN,OAAA,EAAS,6BAAA;AAAA,YACT,KAAA,EAAO,2BAAA;AAAA,YACP,MAAA,EAAQ,4BAAA;AAAA,YACR,KAAA,EAAO,2BAAA;AAAA,YACP,QAAA,EAAU;AAAA,WACZ;AAAA;AAAA,UAGA,OAAA,EAAS;AAAA,YACP,OAAA,EAAS,sBAAA;AAAA,YACT,KAAA,EAAO,4BAAA;AAAA,YACP,MAAA,EAAQ,6BAAA;AAAA,YACR,SAAA,EAAW,gCAAA;AAAA,YACX,iBAAA,EAAmB,sCAAA;AAAA,YACnB,kBAAA,EAAoB;AAAA,WACtB;AAAA,UACA,KAAA,EAAO;AAAA,YACL,OAAA,EAAS,oBAAA;AAAA,YACT,KAAA,EAAO,0BAAA;AAAA,YACP,MAAA,EAAQ,2BAAA;AAAA,YACR,SAAA,EAAW,8BAAA;AAAA,YACX,iBAAA,EAAmB,oCAAA;AAAA,YACnB,kBAAA,EAAoB;AAAA,WACtB;AAAA,UACA,OAAA,EAAS;AAAA,YACP,OAAA,EAAS,sBAAA;AAAA,YACT,KAAA,EAAO,4BAAA;AAAA,YACP,MAAA,EAAQ,6BAAA;AAAA,YACR,SAAA,EAAW,gCAAA;AAAA,YACX,iBAAA,EAAmB,sCAAA;AAAA,YACnB,kBAAA,EAAoB;AAAA,WACtB;AAAA,UACA,IAAA,EAAM;AAAA,YACJ,OAAA,EAAS,mBAAA;AAAA,YACT,KAAA,EAAO,yBAAA;AAAA,YACP,MAAA,EAAQ;AAAA,WACV;AAAA;AAAA,UAGA,QAAA,EAAU,uBAAA;AAAA,UACV,KAAA,EAAO,yBAAA;AAAA,UACP,eAAA,EAAiB,4BAAA;AAAA;AAAA,UAGjB,IAAA,EAAM;AAAA,YACJ,OAAA,EAAS,mBAAA;AAAA,YACT,KAAA,EAAO,yBAAA;AAAA,YACP,OAAA,EAAS;AAAA,WACX;AAAA;AAAA,UAGA,QAAA,EAAU;AAAA,YACR,IAAA,EAAM,+BAAA;AAAA,YACN,IAAA,EAAM;AAAA,WACR;AAAA,UACA,aAAA,EAAe,6BAAA;AAAA;AAAA,UAGf,OAAA,EAAS;AAAA;AACX,OACF;AAAA;AAAA,MAEA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,OAAA;AAAA;AAAA,QACN,IAAA,EAAM,QAAA;AAAA;AAAA,QACN,IAAA,EAAM;AAAA;AAAA,OACR;AAAA,MAEA,YAAA,EAAc;AAAA,QACZ,EAAA,EAAI,eAAA;AAAA;AAAA,QACJ,EAAA,EAAI,2BAAA;AAAA;AAAA,QACJ,EAAA,EAAI,2BAAA;AAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AAAA,OACN;AAAA,MAEA,QAAA,EAAU;AAAA,QACR,oBAAA,EAAsB;AAAA,OACxB;AAAA,MAEA,UAAA,EAAY;AAAA,QACV,IAAA,EAAM,CAAC,yBAAyB,CAAA;AAAA,QAChC,IAAA,EAAM,CAAC,4BAA4B,CAAA;AAAA,QACnC,IAAA,EAAM,CAAC,yBAAyB,CAAA;AAAA,QAChC,OAAA,EAAS,CAAC,4BAA4B;AAAA,OACxC;AAAA;AAAA;AAAA;AAAA,MAKA,QAAA,EAAU;AAAA;AAAA,QAER,aAAa,CAAC,2BAAA,EAA6B,EAAE,UAAA,EAAY,wCAAwC,CAAA;AAAA,QACjG,aAAa,CAAC,+BAAA,EAAiC,EAAE,UAAA,EAAY,uCAAuC,CAAA;AAAA,QACpG,aAAa,CAAC,0BAAA,EAA4B,EAAE,UAAA,EAAY,kCAAkC,CAAA;AAAA,QAC1F,aAAa,CAAC,0BAAA,EAA4B,EAAE,UAAA,EAAY,kCAAkC,CAAA;AAAA,QAC1F,aAAa,CAAC,6BAAA,EAA+B,EAAE,UAAA,EAAY,qCAAqC,CAAA;AAAA,QAChG,aAAa,CAAC,6BAAA,EAA+B,EAAE,UAAA,EAAY,qCAAqC;AAAA,OAClG;AAAA;AAAA;AAAA;AAAA,MAKA,SAAA,EAAW;AAAA,QACT,MAAA,EAAQ,oBAAA;AAAA,QACR,YAAA,EAAc,0BAAA;AAAA,QACd,OAAA,EAAS,qBAAA;AAAA,QACT,UAAA,EAAY,wBAAA;AAAA,QACZ,SAAA,EAAW,uBAAA;AAAA,QACX,OAAA,EAAS,qBAAA;AAAA,QACT,QAAA,EAAU,sBAAA;AAAA,QACV,WAAA,EAAa;AAAA,OACf;AAAA;AAAA;AAAA;AAAA,MAKA,kBAAA,EAAoB;AAAA,QAClB,MAAA,EAAQ,sBAAA;AAAA,QACR,QAAA,EAAU,wBAAA;AAAA,QACV,MAAA,EAAQ,sBAAA;AAAA,QACR,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,wBAAA,EAA0B;AAAA,QACxB,QAAA,EAAU,oBAAA;AAAA,QACV,SAAA,EAAW;AAAA,OACb;AAAA;AAAA;AAAA;AAAA,MAKA,MAAA,EAAQ;AAAA,QACN,UAAA,EAAY,mBAAA;AAAA,QACZ,QAAA,EAAU,iBAAA;AAAA,QACV,OAAA,EAAS,gBAAA;AAAA,QACT,gBAAA,EAAkB,yBAAA;AAAA,QAClB,OAAA,EAAS,gBAAA;AAAA,QACT,SAAA,EAAW,kBAAA;AAAA,QACX,SAAA,EAAW,kBAAA;AAAA,QACX,cAAA,EAAgB,uBAAA;AAAA,QAChB,OAAA,EAAS;AAAA,OACX;AAAA;AAAA;AAAA;AAAA,MAKA,SAAA,EAAW;AAAA,QACT,gBAAA,EAAkB;AAAA,UAChB,IAAA,EAAM,EAAE,MAAA,EAAQ,GAAA,EAAI;AAAA,UACpB,EAAA,EAAI,EAAE,MAAA,EAAQ,uCAAA;AAAwC,SACxD;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,IAAA,EAAM,EAAE,MAAA,EAAQ,uCAAA,EAAwC;AAAA,UACxD,EAAA,EAAI,EAAE,MAAA,EAAQ,GAAA;AAAI,SACpB;AAAA,QACA,SAAA,EAAW;AAAA,UACT,IAAA,EAAM,EAAE,OAAA,EAAS,GAAA,EAAI;AAAA,UACrB,EAAA,EAAI,EAAE,OAAA,EAAS,GAAA;AAAI,SACrB;AAAA;AAAA;AAAA,QAGA,YAAA,EAAc;AAAA,UACZ,IAAA,EAAM,EAAE,SAAA,EAAW,eAAA,EAAgB;AAAA,UACnC,EAAA,EAAI,EAAE,SAAA,EAAW,kBAAA;AAAmB;AACtC,OACF;AAAA,MACA,SAAA,EAAW;AAAA,QACT,gBAAA,EAAkB,8BAAA;AAAA,QAClB,cAAA,EAAgB,4BAAA;AAAA,QAChB,SAAA,EAAW,uBAAA;AAAA,QACX,YAAA,EAAc;AAAA;AAChB;AACF,GACF;AAAA,EACA,OAAA,EAAS,CAAC,kBAAA,EAAoB,mBAAA,EAAqB,gBAAgB;AACrE,CAAA;AAEA,IAAO,uBAAA,GAAQ","file":"tailwind.config.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nfunction createPlugin(plugin, config) {\n return {\n handler: plugin,\n config\n };\n}\ncreatePlugin.withOptions = function(pluginFunction, configFunction = ()=>({})) {\n const optionsFunction = function(options) {\n return {\n __options: options,\n handler: pluginFunction(options),\n config: configFunction(options)\n };\n };\n optionsFunction.__isOptionsFunction = true;\n // Expose plugin dependencies so that `object-hash` returns a different\n // value if anything here changes, to ensure a rebuild is triggered.\n optionsFunction.__pluginFunction = pluginFunction;\n optionsFunction.__configFunction = configFunction;\n return optionsFunction;\n};\nconst _default = createPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _createPlugin = /*#__PURE__*/ _interop_require_default(require(\"../util/createPlugin\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst _default = _createPlugin.default;\n","let createPlugin = require('./lib/public/create-plugin')\nmodule.exports = (createPlugin.__esModule ? createPlugin : { default: createPlugin }).default\n","import type { Config } from 'tailwindcss'\nimport plugin from 'tailwindcss/plugin'\nimport tailwindcssAnimate from 'tailwindcss-animate'\nimport containerQueries from '@tailwindcss/container-queries'\n\nconst odsTypographyPlugin = plugin(({ addUtilities }) => {\n addUtilities({\n '.text-h1': {\n fontFamily: 'var(--font-h1-family)',\n fontWeight: 'var(--font-h1-weight)',\n fontSize: 'var(--font-size-h1-title)',\n lineHeight: 'var(--font-line-space-h1-main-title)',\n letterSpacing: '-0.02em',\n },\n '.text-h2': {\n fontFamily: 'var(--font-h2-family)',\n fontWeight: 'var(--font-h2-weight)',\n fontSize: 'var(--font-size-h2-sub-title)',\n lineHeight: 'var(--font-line-space-h2-sub-title)',\n letterSpacing: '-0.02em',\n },\n '.text-h3': {\n fontFamily: 'var(--font-h3-family)',\n fontWeight: 'var(--font-h3-weight)',\n fontSize: 'var(--font-size-h3-body)',\n lineHeight: 'var(--font-line-space-h3-body)',\n letterSpacing: '-0.02em',\n },\n '.text-h4': {\n fontFamily: 'var(--font-h4-family)',\n fontWeight: 'var(--font-h4-weight)',\n fontSize: 'var(--font-size-h4-body)',\n lineHeight: 'var(--font-line-space-h4-body)',\n },\n '.text-h5': {\n fontFamily: 'var(--font-h5-family)',\n fontWeight: 'var(--font-h5-weight)',\n fontSize: 'var(--font-size-h5-caption)',\n lineHeight: 'var(--font-line-space-h5-caption)',\n textTransform: 'uppercase',\n letterSpacing: '-0.02em',\n },\n '.text-h6': {\n fontFamily: 'var(--font-h6-family)',\n fontWeight: 'var(--font-h6-weight)',\n fontSize: 'var(--font-size-h6-caption)',\n lineHeight: 'var(--font-line-space-h6-caption)',\n },\n })\n})\n\nconst config: Config = {\n content: [\n \"./src/**/*.{js,ts,jsx,tsx}\",\n ],\n safelist: [\n // Dynamically generated classes for table hide/show functionality\n 'hidden',\n 'md:hidden',\n 'lg:hidden',\n 'md:flex',\n 'lg:flex',\n ],\n theme: {\n container: {\n center: true,\n padding: \"2rem\",\n screens: {\n \"2xl\": \"1400px\",\n },\n },\n extend: {\n colors: {\n // Shadcn/ui base colors (keep for compatibility)\n border: \"hsl(var(--border))\",\n input: \"hsl(var(--input))\",\n ring: \"hsl(var(--ring))\",\n background: \"hsl(var(--background))\",\n foreground: \"hsl(var(--foreground))\",\n primary: {\n DEFAULT: \"hsl(var(--primary))\",\n foreground: \"hsl(var(--primary-foreground))\",\n },\n secondary: {\n DEFAULT: \"hsl(var(--secondary))\",\n foreground: \"hsl(var(--secondary-foreground))\",\n },\n destructive: {\n DEFAULT: \"hsl(var(--destructive))\",\n foreground: \"hsl(var(--destructive-foreground))\",\n },\n muted: {\n DEFAULT: \"hsl(var(--muted))\",\n foreground: \"hsl(var(--muted-foreground))\",\n },\n accent: {\n DEFAULT: \"hsl(var(--accent))\",\n foreground: \"hsl(var(--accent-foreground))\",\n },\n popover: {\n DEFAULT: \"hsl(var(--popover))\",\n foreground: \"hsl(var(--popover-foreground))\",\n },\n card: {\n DEFAULT: \"hsl(var(--card))\",\n foreground: \"hsl(var(--card-foreground))\",\n },\n\n // =================================================\n // ODS (Open Design System) COLORS\n // =================================================\n // Single nested structure: generates bg-ods-*, text-ods-*, border-ods-* utilities\n ods: {\n // Backgrounds\n bg: \"var(--color-bg)\",\n card: \"var(--color-bg-card)\",\n overlay: \"var(--color-bg-overlay)\",\n skeleton: \"var(--color-bg-skeleton)\",\n \"bg-hover\": \"var(--color-bg-hover)\",\n \"bg-active\": \"var(--color-bg-active)\",\n \"bg-surface\": \"var(--color-bg-surface)\",\n \"card-hover\": \"var(--color-bg-hover)\",\n divider: \"var(--color-divider)\",\n\n // Borders\n border: {\n DEFAULT: \"var(--color-border-default)\",\n hover: \"var(--color-border-hover)\",\n active: \"var(--color-border-active)\",\n focus: \"var(--color-border-focus)\",\n },\n\n // Text\n text: {\n primary: \"var(--color-text-primary)\",\n secondary: \"var(--color-text-secondary)\",\n tertiary: \"var(--color-text-tertiary)\",\n muted: \"var(--color-text-muted)\",\n subtle: \"var(--color-text-subtle)\",\n disabled: \"var(--color-text-disabled)\",\n \"on-accent\": \"var(--color-text-on-accent)\",\n \"on-dark\": \"var(--color-text-on-dark)\",\n },\n\n // Accent\n accent: {\n DEFAULT: \"var(--color-accent-primary)\",\n hover: \"var(--color-accent-hover)\",\n active: \"var(--color-accent-active)\",\n focus: \"var(--color-accent-focus)\",\n disabled: \"var(--color-accent-disabled)\",\n },\n\n // Status\n success: {\n DEFAULT: \"var(--color-success)\",\n hover: \"var(--color-success-hover)\",\n active: \"var(--color-success-active)\",\n secondary: \"var(--color-success-secondary)\",\n \"secondary-hover\": \"var(--color-success-secondary-hover)\",\n \"secondary-active\": \"var(--color-success-secondary-active)\",\n },\n error: {\n DEFAULT: \"var(--color-error)\",\n hover: \"var(--color-error-hover)\",\n active: \"var(--color-error-active)\",\n secondary: \"var(--color-error-secondary)\",\n \"secondary-hover\": \"var(--color-error-secondary-hover)\",\n \"secondary-active\": \"var(--color-error-secondary-active)\",\n },\n warning: {\n DEFAULT: \"var(--color-warning)\",\n hover: \"var(--color-warning-hover)\",\n active: \"var(--color-warning-active)\",\n secondary: \"var(--color-warning-secondary)\",\n \"secondary-hover\": \"var(--color-warning-secondary-hover)\",\n \"secondary-active\": \"var(--color-warning-secondary-active)\",\n },\n info: {\n DEFAULT: \"var(--color-info)\",\n hover: \"var(--color-info-hover)\",\n active: \"var(--color-info-active)\",\n },\n\n // Interactive states\n disabled: \"var(--color-disabled)\",\n focus: \"var(--color-focus-ring)\",\n \"focus-visible\": \"var(--color-focus-visible)\",\n\n // Links\n link: {\n DEFAULT: \"var(--color-link)\",\n hover: \"var(--color-link-hover)\",\n visited: \"var(--color-link-visited)\",\n },\n\n // Brand colors (theme-independent)\n flamingo: {\n pink: \"var(--ods-flamingo-pink-base)\",\n cyan: \"var(--ods-flamingo-cyan-base)\",\n },\n \"open-yellow\": \"var(--ods-open-yellow-base)\",\n\n // Adaptive platform color\n current: \"var(--ods-current)\",\n },\n },\n // Custom breakpoints (aligned with ODS responsive tokens from Figma)\n screens: {\n 'md': '800px', // Tablet: 50rem\n 'lg': '1280px', // Desktop: 80rem\n 'xl': '1440px', // Large desktop: 90rem\n },\n\n borderRadius: {\n lg: \"var(--radius)\", // 8px\n md: \"calc(var(--radius) - 2px)\", // 6px\n sm: \"calc(var(--radius) - 4px)\", // 4px\n xs: \"calc(var(--radius) - 6px)\", // 2px\n },\n\n maxWidth: {\n 'ods-content-narrow': '600px',\n },\n\n fontFamily: {\n sans: [\"var(--font-family-body)\"],\n mono: [\"var(--font-family-heading)\"],\n body: [\"var(--font-family-body)\"],\n heading: [\"var(--font-family-heading)\"],\n },\n\n // =================================================\n // TYPOGRAPHY\n // =================================================\n fontSize: {\n // Responsive heading sizes (from ods-responsive-tokens.css)\n 'heading-1': ['var(--font-size-h1-title)', { lineHeight: 'var(--font-line-space-h1-main-title)' }],\n 'heading-2': ['var(--font-size-h2-sub-title)', { lineHeight: 'var(--font-line-space-h2-sub-title)' }],\n 'heading-3': ['var(--font-size-h3-body)', { lineHeight: 'var(--font-line-space-h3-body)' }],\n 'heading-4': ['var(--font-size-h4-body)', { lineHeight: 'var(--font-line-space-h4-body)' }],\n 'heading-5': ['var(--font-size-h5-caption)', { lineHeight: 'var(--font-line-space-h5-caption)' }],\n 'heading-6': ['var(--font-size-h6-caption)', { lineHeight: 'var(--font-line-space-h6-caption)' }],\n },\n\n // =================================================\n // SHADOWS\n // =================================================\n boxShadow: {\n 'card': 'var(--shadow-card)',\n 'card-hover': 'var(--shadow-card-hover)',\n 'modal': 'var(--shadow-modal)',\n 'dropdown': 'var(--shadow-dropdown)',\n 'tooltip': 'var(--shadow-tooltip)',\n 'focus': 'var(--shadow-focus)',\n 'accent': 'var(--shadow-accent)',\n 'accent-lg': 'var(--shadow-accent-lg)',\n },\n\n // =================================================\n // TRANSITIONS\n // =================================================\n transitionDuration: {\n 'fast': 'var(--duration-fast)',\n 'normal': 'var(--duration-normal)',\n 'slow': 'var(--duration-slow)',\n 'slower': 'var(--duration-slower)',\n },\n transitionTimingFunction: {\n 'bounce': 'var(--ease-bounce)',\n 'elastic': 'var(--ease-elastic)',\n },\n\n // =================================================\n // Z-INDEX\n // =================================================\n zIndex: {\n 'dropdown': 'var(--z-dropdown)',\n 'sticky': 'var(--z-sticky)',\n 'fixed': 'var(--z-fixed)',\n 'modal-backdrop': 'var(--z-modal-backdrop)',\n 'modal': 'var(--z-modal)',\n 'popover': 'var(--z-popover)',\n 'tooltip': 'var(--z-tooltip)',\n 'notification': 'var(--z-notification)',\n 'debug': 'var(--z-debug)',\n },\n\n // =================================================\n // ANIMATIONS\n // =================================================\n keyframes: {\n \"accordion-down\": {\n from: { height: \"0\" },\n to: { height: \"var(--radix-accordion-content-height)\" },\n },\n \"accordion-up\": {\n from: { height: \"var(--radix-accordion-content-height)\" },\n to: { height: \"0\" },\n },\n \"fade-in\": {\n from: { opacity: \"0\" },\n to: { opacity: \"1\" },\n },\n // Endless chip strip (QuickActionMarquee): the track renders its items\n // twice, so -50% lands exactly one copy over for a seamless loop.\n \"qa-marquee\": {\n from: { transform: \"translateX(0)\" },\n to: { transform: \"translateX(-50%)\" },\n },\n },\n animation: {\n \"accordion-down\": \"accordion-down 0.2s ease-out\",\n \"accordion-up\": \"accordion-up 0.2s ease-out\",\n \"fade-in\": \"fade-in 0.3s ease-out\",\n \"qa-marquee\": \"qa-marquee var(--qa-marquee-duration,40s) linear infinite\",\n },\n },\n },\n plugins: [tailwindcssAnimate, odsTypographyPlugin, containerQueries],\n}\n\nexport default config\n"]}
|
|
1
|
+
{"version":3,"sources":["../node_modules/tailwindcss/lib/util/createPlugin.js","../node_modules/tailwindcss/lib/public/create-plugin.js","../node_modules/tailwindcss/plugin.js","../tailwind.config.ts"],"names":["plugin","config"],"mappings":"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","file":"tailwind.config.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nfunction createPlugin(plugin, config) {\n return {\n handler: plugin,\n config\n };\n}\ncreatePlugin.withOptions = function(pluginFunction, configFunction = ()=>({})) {\n const optionsFunction = function(options) {\n return {\n __options: options,\n handler: pluginFunction(options),\n config: configFunction(options)\n };\n };\n optionsFunction.__isOptionsFunction = true;\n // Expose plugin dependencies so that `object-hash` returns a different\n // value if anything here changes, to ensure a rebuild is triggered.\n optionsFunction.__pluginFunction = pluginFunction;\n optionsFunction.__configFunction = configFunction;\n return optionsFunction;\n};\nconst _default = createPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _createPlugin = /*#__PURE__*/ _interop_require_default(require(\"../util/createPlugin\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst _default = _createPlugin.default;\n","let createPlugin = require('./lib/public/create-plugin')\nmodule.exports = (createPlugin.__esModule ? createPlugin : { default: createPlugin }).default\n","import type { Config } from 'tailwindcss'\nimport plugin from 'tailwindcss/plugin'\nimport tailwindcssAnimate from 'tailwindcss-animate'\nimport containerQueries from '@tailwindcss/container-queries'\n\nconst odsTypographyPlugin = plugin(({ addUtilities }) => {\n addUtilities({\n '.text-h1': {\n fontFamily: 'var(--font-h1-family)',\n fontWeight: 'var(--font-h1-weight)',\n fontSize: 'var(--font-size-h1-title)',\n lineHeight: 'var(--font-line-space-h1-main-title)',\n letterSpacing: '-0.02em',\n },\n '.text-h2': {\n fontFamily: 'var(--font-h2-family)',\n fontWeight: 'var(--font-h2-weight)',\n fontSize: 'var(--font-size-h2-sub-title)',\n lineHeight: 'var(--font-line-space-h2-sub-title)',\n letterSpacing: '-0.02em',\n },\n '.text-h3': {\n fontFamily: 'var(--font-h3-family)',\n fontWeight: 'var(--font-h3-weight)',\n fontSize: 'var(--font-size-h3-body)',\n lineHeight: 'var(--font-line-space-h3-body)',\n letterSpacing: '-0.02em',\n },\n '.text-h4': {\n fontFamily: 'var(--font-h4-family)',\n fontWeight: 'var(--font-h4-weight)',\n fontSize: 'var(--font-size-h4-body)',\n lineHeight: 'var(--font-line-space-h4-body)',\n },\n '.text-h5': {\n fontFamily: 'var(--font-h5-family)',\n fontWeight: 'var(--font-h5-weight)',\n fontSize: 'var(--font-size-h5-caption)',\n lineHeight: 'var(--font-line-space-h5-caption)',\n textTransform: 'uppercase',\n letterSpacing: '-0.02em',\n },\n '.text-h6': {\n fontFamily: 'var(--font-h6-family)',\n fontWeight: 'var(--font-h6-weight)',\n fontSize: 'var(--font-size-h6-caption)',\n lineHeight: 'var(--font-line-space-h6-caption)',\n },\n })\n})\n\nconst config: Config = {\n content: [\n \"./src/**/*.{js,ts,jsx,tsx}\",\n ],\n safelist: [\n // Dynamically generated classes for table hide/show functionality\n 'hidden',\n 'md:hidden',\n 'lg:hidden',\n 'md:flex',\n 'lg:flex',\n ],\n theme: {\n container: {\n center: true,\n padding: \"2rem\",\n screens: {\n \"2xl\": \"1400px\",\n },\n },\n extend: {\n colors: {\n // Shadcn/ui base colors (keep for compatibility)\n border: \"hsl(var(--border))\",\n input: \"hsl(var(--input))\",\n ring: \"hsl(var(--ring))\",\n background: \"hsl(var(--background))\",\n foreground: \"hsl(var(--foreground))\",\n primary: {\n DEFAULT: \"hsl(var(--primary))\",\n foreground: \"hsl(var(--primary-foreground))\",\n },\n secondary: {\n DEFAULT: \"hsl(var(--secondary))\",\n foreground: \"hsl(var(--secondary-foreground))\",\n },\n destructive: {\n DEFAULT: \"hsl(var(--destructive))\",\n foreground: \"hsl(var(--destructive-foreground))\",\n },\n muted: {\n DEFAULT: \"hsl(var(--muted))\",\n foreground: \"hsl(var(--muted-foreground))\",\n },\n accent: {\n DEFAULT: \"hsl(var(--accent))\",\n foreground: \"hsl(var(--accent-foreground))\",\n },\n popover: {\n DEFAULT: \"hsl(var(--popover))\",\n foreground: \"hsl(var(--popover-foreground))\",\n },\n card: {\n DEFAULT: \"hsl(var(--card))\",\n foreground: \"hsl(var(--card-foreground))\",\n },\n\n // =================================================\n // ODS (Open Design System) COLORS\n // =================================================\n // Single nested structure: generates bg-ods-*, text-ods-*, border-ods-* utilities\n ods: {\n // Backgrounds\n bg: \"var(--color-bg)\",\n card: \"var(--color-bg-card)\",\n overlay: \"var(--color-bg-overlay)\",\n skeleton: \"var(--color-bg-skeleton)\",\n \"bg-hover\": \"var(--color-bg-hover)\",\n \"bg-active\": \"var(--color-bg-active)\",\n \"bg-surface\": \"var(--color-bg-surface)\",\n \"card-hover\": \"var(--color-bg-hover)\",\n divider: \"var(--color-divider)\",\n\n // Borders\n border: {\n DEFAULT: \"var(--color-border-default)\",\n hover: \"var(--color-border-hover)\",\n active: \"var(--color-border-active)\",\n focus: \"var(--color-border-focus)\",\n },\n\n // Text\n text: {\n primary: \"var(--color-text-primary)\",\n secondary: \"var(--color-text-secondary)\",\n tertiary: \"var(--color-text-tertiary)\",\n muted: \"var(--color-text-muted)\",\n subtle: \"var(--color-text-subtle)\",\n disabled: \"var(--color-text-disabled)\",\n \"on-accent\": \"var(--color-text-on-accent)\",\n \"on-dark\": \"var(--color-text-on-dark)\",\n },\n\n // Accent\n accent: {\n DEFAULT: \"var(--color-accent-primary)\",\n hover: \"var(--color-accent-hover)\",\n active: \"var(--color-accent-active)\",\n focus: \"var(--color-accent-focus)\",\n disabled: \"var(--color-accent-disabled)\",\n },\n\n // Status\n success: {\n DEFAULT: \"var(--color-success)\",\n hover: \"var(--color-success-hover)\",\n active: \"var(--color-success-active)\",\n secondary: \"var(--color-success-secondary)\",\n \"secondary-hover\": \"var(--color-success-secondary-hover)\",\n \"secondary-active\": \"var(--color-success-secondary-active)\",\n },\n error: {\n DEFAULT: \"var(--color-error)\",\n hover: \"var(--color-error-hover)\",\n active: \"var(--color-error-active)\",\n secondary: \"var(--color-error-secondary)\",\n \"secondary-hover\": \"var(--color-error-secondary-hover)\",\n \"secondary-active\": \"var(--color-error-secondary-active)\",\n },\n warning: {\n DEFAULT: \"var(--color-warning)\",\n hover: \"var(--color-warning-hover)\",\n active: \"var(--color-warning-active)\",\n secondary: \"var(--color-warning-secondary)\",\n \"secondary-hover\": \"var(--color-warning-secondary-hover)\",\n \"secondary-active\": \"var(--color-warning-secondary-active)\",\n },\n info: {\n DEFAULT: \"var(--color-info)\",\n hover: \"var(--color-info-hover)\",\n active: \"var(--color-info-active)\",\n },\n\n // Interactive states\n disabled: \"var(--color-disabled)\",\n focus: \"var(--color-focus-ring)\",\n \"focus-visible\": \"var(--color-focus-visible)\",\n\n // Links\n link: {\n DEFAULT: \"var(--color-link)\",\n hover: \"var(--color-link-hover)\",\n visited: \"var(--color-link-visited)\",\n },\n\n // Brand colors (theme-independent)\n flamingo: {\n pink: \"var(--ods-flamingo-pink-base)\",\n cyan: \"var(--ods-flamingo-cyan-base)\",\n },\n \"open-yellow\": \"var(--ods-open-yellow-base)\",\n\n // Attention tokens (ods-colors.css). Components reference these BY\n // NAME (error-state.tsx: `border-ods-attention-red-error` etc.) —\n // without these mappings Tailwind silently generates NOTHING for\n // the class and the component renders colorless in every consumer.\n attention: {\n \"red-error\": \"var(--ods-attention-red-error)\",\n \"red-error-hover\": \"var(--ods-attention-red-error-hover)\",\n \"red-error-action\": \"var(--ods-attention-red-error-action)\",\n \"red-error-secondary\": \"var(--ods-attention-red-error-secondary)\",\n \"red-error-secondary-hover\": \"var(--ods-attention-red-error-secondary-hover)\",\n \"red-error-secondary-action\": \"var(--ods-attention-red-error-secondary-action)\",\n \"yellow-warning\": \"var(--ods-attention-yellow-warning)\",\n \"yellow-warning-hover\": \"var(--ods-attention-yellow-warning-hover)\",\n \"yellow-warning-action\": \"var(--ods-attention-yellow-warning-action)\",\n \"yellow-warning-secondary\": \"var(--ods-attention-yellow-warning-secondary)\",\n \"yellow-warning-secondary-hover\": \"var(--ods-attention-yellow-warning-secondary-hover)\",\n \"yellow-warning-secondary-action\": \"var(--ods-attention-yellow-warning-secondary-action)\",\n \"green-success\": \"var(--ods-attention-green-success)\",\n \"green-success-hover\": \"var(--ods-attention-green-success-hover)\",\n \"green-success-action\": \"var(--ods-attention-green-success-action)\",\n \"green-success-secondary\": \"var(--ods-attention-green-success-secondary)\",\n \"green-success-secondary-hover\": \"var(--ods-attention-green-success-secondary-hover)\",\n \"green-success-secondary-action\": \"var(--ods-attention-green-success-secondary-action)\",\n },\n\n // Adaptive platform color\n current: \"var(--ods-current)\",\n },\n },\n // Custom breakpoints (aligned with ODS responsive tokens from Figma)\n screens: {\n 'md': '800px', // Tablet: 50rem\n 'lg': '1280px', // Desktop: 80rem\n 'xl': '1440px', // Large desktop: 90rem\n },\n\n borderRadius: {\n lg: \"var(--radius)\", // 8px\n md: \"calc(var(--radius) - 2px)\", // 6px\n sm: \"calc(var(--radius) - 4px)\", // 4px\n xs: \"calc(var(--radius) - 6px)\", // 2px\n },\n\n maxWidth: {\n 'ods-content-narrow': '600px',\n },\n\n fontFamily: {\n sans: [\"var(--font-family-body)\"],\n mono: [\"var(--font-family-heading)\"],\n body: [\"var(--font-family-body)\"],\n heading: [\"var(--font-family-heading)\"],\n },\n\n // =================================================\n // TYPOGRAPHY\n // =================================================\n fontSize: {\n // Responsive heading sizes (from ods-responsive-tokens.css)\n 'heading-1': ['var(--font-size-h1-title)', { lineHeight: 'var(--font-line-space-h1-main-title)' }],\n 'heading-2': ['var(--font-size-h2-sub-title)', { lineHeight: 'var(--font-line-space-h2-sub-title)' }],\n 'heading-3': ['var(--font-size-h3-body)', { lineHeight: 'var(--font-line-space-h3-body)' }],\n 'heading-4': ['var(--font-size-h4-body)', { lineHeight: 'var(--font-line-space-h4-body)' }],\n 'heading-5': ['var(--font-size-h5-caption)', { lineHeight: 'var(--font-line-space-h5-caption)' }],\n 'heading-6': ['var(--font-size-h6-caption)', { lineHeight: 'var(--font-line-space-h6-caption)' }],\n },\n\n // =================================================\n // SHADOWS\n // =================================================\n boxShadow: {\n 'card': 'var(--shadow-card)',\n 'card-hover': 'var(--shadow-card-hover)',\n 'modal': 'var(--shadow-modal)',\n 'dropdown': 'var(--shadow-dropdown)',\n 'tooltip': 'var(--shadow-tooltip)',\n 'focus': 'var(--shadow-focus)',\n 'accent': 'var(--shadow-accent)',\n 'accent-lg': 'var(--shadow-accent-lg)',\n },\n\n // =================================================\n // TRANSITIONS\n // =================================================\n transitionDuration: {\n 'fast': 'var(--duration-fast)',\n 'normal': 'var(--duration-normal)',\n 'slow': 'var(--duration-slow)',\n 'slower': 'var(--duration-slower)',\n },\n transitionTimingFunction: {\n 'bounce': 'var(--ease-bounce)',\n 'elastic': 'var(--ease-elastic)',\n },\n\n // =================================================\n // Z-INDEX\n // =================================================\n zIndex: {\n 'dropdown': 'var(--z-dropdown)',\n 'sticky': 'var(--z-sticky)',\n 'fixed': 'var(--z-fixed)',\n 'modal-backdrop': 'var(--z-modal-backdrop)',\n 'modal': 'var(--z-modal)',\n 'popover': 'var(--z-popover)',\n 'tooltip': 'var(--z-tooltip)',\n 'notification': 'var(--z-notification)',\n 'debug': 'var(--z-debug)',\n },\n\n // =================================================\n // ANIMATIONS\n // =================================================\n keyframes: {\n \"accordion-down\": {\n from: { height: \"0\" },\n to: { height: \"var(--radix-accordion-content-height)\" },\n },\n \"accordion-up\": {\n from: { height: \"var(--radix-accordion-content-height)\" },\n to: { height: \"0\" },\n },\n \"fade-in\": {\n from: { opacity: \"0\" },\n to: { opacity: \"1\" },\n },\n // Endless chip strip (QuickActionMarquee): the track renders its items\n // twice, so -50% lands exactly one copy over for a seamless loop.\n \"qa-marquee\": {\n from: { transform: \"translateX(0)\" },\n to: { transform: \"translateX(-50%)\" },\n },\n },\n animation: {\n \"accordion-down\": \"accordion-down 0.2s ease-out\",\n \"accordion-up\": \"accordion-up 0.2s ease-out\",\n \"fade-in\": \"fade-in 0.3s ease-out\",\n \"qa-marquee\": \"qa-marquee var(--qa-marquee-duration,40s) linear infinite\",\n },\n },\n },\n plugins: [tailwindcssAnimate, odsTypographyPlugin, containerQueries],\n}\n\nexport default config\n"]}
|
package/package.json
CHANGED
|
@@ -7,6 +7,8 @@ import { XmarkIcon } from "../icons-v2-generated/signs-and-symbols/xmark-icon"
|
|
|
7
7
|
import { Chevron02LeftIcon } from "../icons-v2-generated"
|
|
8
8
|
import { TicketStatusTag, resolveStatusTagProps } from "../ui/ticket-status-tag"
|
|
9
9
|
import { Skeleton } from "../ui/skeleton"
|
|
10
|
+
import { MspOrganizationCard } from "./msp-organization-card"
|
|
11
|
+
import { MspOrganizationCardSkeleton } from "./msp-organization-card-skeleton"
|
|
10
12
|
import type { ConnectionIndicatorProps, ChatContainerProps, ChatHeaderProps } from "./types"
|
|
11
13
|
|
|
12
14
|
const ConnectionIndicator: React.FC<ConnectionIndicatorProps> = ({ status }) => {
|
|
@@ -61,7 +63,7 @@ const ChatContainer = React.forwardRef<HTMLDivElement, ChatContainerProps>(
|
|
|
61
63
|
ChatContainer.displayName = "ChatContainer"
|
|
62
64
|
|
|
63
65
|
const ChatHeader = React.forwardRef<HTMLDivElement, ChatHeaderProps>(
|
|
64
|
-
({ className, userName = 'Grace "Fae" Meadows', userTitle = "Your Personal Assistant", userAvatar, userIcon, onSettingsClick, onNewChat, onClose, onBack, showNewChat = false, connectionStatus = 'disconnected', serverUrl = null, headerActions, ticketInfo, fullWidth = false, bare = false, isLoading = false, ...props }, ref) => {
|
|
66
|
+
({ className, userName = 'Grace "Fae" Meadows', userTitle = "Your Personal Assistant", userAvatar, userIcon, onSettingsClick, onNewChat, onClose, onBack, showNewChat = false, connectionStatus = 'disconnected', serverUrl = null, headerActions, ticketInfo, mspOrganization, isMspLoading = false, fullWidth = false, bare = false, isLoading = false, ...props }, ref) => {
|
|
65
67
|
const cardClasses = bare
|
|
66
68
|
? ""
|
|
67
69
|
: "rounded-md bg-ods-card border border-ods-border"
|
|
@@ -159,6 +161,23 @@ const ChatHeader = React.forwardRef<HTMLDivElement, ChatHeaderProps>(
|
|
|
159
161
|
{headerActions}
|
|
160
162
|
</div>
|
|
161
163
|
</div>
|
|
164
|
+
{/* MSP branding slot — home-screen only; `ticketInfo` (open chat)
|
|
165
|
+
claims this space, so it wins when both are provided. The card
|
|
166
|
+
already draws the chrome: strip the section's own ring and keep
|
|
167
|
+
only the bottom rounding so its bg fits the card corners. */}
|
|
168
|
+
{!ticketInfo && (isMspLoading || mspOrganization) && (
|
|
169
|
+
<>
|
|
170
|
+
<div className="h-px bg-ods-border" />
|
|
171
|
+
{isMspLoading || !mspOrganization ? (
|
|
172
|
+
<MspOrganizationCardSkeleton className={cn("ring-0 rounded-none", !bare && "rounded-b-md")} />
|
|
173
|
+
) : (
|
|
174
|
+
<MspOrganizationCard
|
|
175
|
+
{...mspOrganization}
|
|
176
|
+
className={cn("ring-0 rounded-none", !bare && "rounded-b-md", mspOrganization.className)}
|
|
177
|
+
/>
|
|
178
|
+
)}
|
|
179
|
+
</>
|
|
180
|
+
)}
|
|
162
181
|
{ticketInfo && (
|
|
163
182
|
<>
|
|
164
183
|
<div className="h-px bg-ods-border" />
|
|
@@ -7,6 +7,7 @@ import type { AssistantType, AuthorType, ChatApprovalStatus, ConnectionStatus }
|
|
|
7
7
|
import type { ApprovalRequestData, Message, MessageSegment, ToolExecutionData } from './message.types'
|
|
8
8
|
import type { ChatRef } from '../chat-ref.types'
|
|
9
9
|
import type { ChatContextItem } from './context-item.types'
|
|
10
|
+
import type { MspOrganizationCardProps } from '../msp-organization-card'
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Anchor component supplied by the host (or the lib's
|
|
@@ -89,6 +90,19 @@ export interface ChatHeaderProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
89
90
|
* Default `false` — renders the resolved identity row.
|
|
90
91
|
*/
|
|
91
92
|
isLoading?: boolean
|
|
93
|
+
/**
|
|
94
|
+
* MSP organization branding section (logo + "Your IT is managed by {name}"
|
|
95
|
+
* + website link) rendered beneath the identity row, inside the header
|
|
96
|
+
* card. Intended for the home chat screen; `ticketInfo` takes precedence
|
|
97
|
+
* over it — on open-chat screens that slot shows the ticket details row.
|
|
98
|
+
*/
|
|
99
|
+
mspOrganization?: MspOrganizationCardProps
|
|
100
|
+
/**
|
|
101
|
+
* Render a skeleton in the MSP organization slot while the host is still
|
|
102
|
+
* resolving tenant info, so the header doesn't shift when the section
|
|
103
|
+
* appears. Like `mspOrganization`, ignored when `ticketInfo` is set.
|
|
104
|
+
*/
|
|
105
|
+
isMspLoading?: boolean
|
|
92
106
|
}
|
|
93
107
|
|
|
94
108
|
// ========== Connection Indicator Props ==========
|
|
@@ -176,7 +176,7 @@ export function ArrayEntryManager<T extends { [key: string]: any }>({
|
|
|
176
176
|
variant="transparent"
|
|
177
177
|
size="icon"
|
|
178
178
|
onClick={() => removeItem(index)}
|
|
179
|
-
className="text-ods-attention-red-error hover:bg-ods-attention-red-error
|
|
179
|
+
className="text-ods-attention-red-error hover:bg-ods-attention-red-error-secondary"
|
|
180
180
|
>
|
|
181
181
|
<Trash2 className="h-4 w-4" />
|
|
182
182
|
</Button>
|
|
@@ -79,7 +79,7 @@ function PushButtonSelectorError({ message, title }: { message: string; title?:
|
|
|
79
79
|
{title}
|
|
80
80
|
</h3>
|
|
81
81
|
)}
|
|
82
|
-
<div className="p-4 bg-ods-attention-red-error-secondary border border-ods-attention-red-error
|
|
82
|
+
<div className="p-4 bg-ods-attention-red-error-secondary border border-ods-attention-red-error rounded-lg">
|
|
83
83
|
<div className="font-['DM_Sans'] text-[14px] text-ods-attention-red-error">
|
|
84
84
|
⚠️ {message}
|
|
85
85
|
</div>
|
|
@@ -299,7 +299,7 @@ export function PushButtonSelector({
|
|
|
299
299
|
|
|
300
300
|
{/* Selection Summary */}
|
|
301
301
|
{selectionSummary && validSelectedIds.length > 0 && (
|
|
302
|
-
<div className="p-4 bg-ods-attention-green-success-secondary border border-ods-attention-green-success
|
|
302
|
+
<div className="p-4 bg-ods-attention-green-success-secondary border border-ods-attention-green-success rounded-lg">
|
|
303
303
|
<div className="flex items-center gap-2 mb-2">
|
|
304
304
|
<div className="w-2 h-2 bg-ods-attention-green-success rounded-full"></div>
|
|
305
305
|
<span className="font-['DM_Sans'] text-[14px] text-ods-attention-green-success font-medium">
|
|
@@ -329,7 +329,7 @@ export function PushButtonSelector({
|
|
|
329
329
|
|
|
330
330
|
{/* Empty State Warning */}
|
|
331
331
|
{validSelectedIds.length === 0 && title && !optional && (
|
|
332
|
-
<div className="p-3 bg-ods-attention-red-error-secondary border border-ods-attention-red-error
|
|
332
|
+
<div className="p-3 bg-ods-attention-red-error-secondary border border-ods-attention-red-error rounded-lg">
|
|
333
333
|
<div className="font-['DM_Sans'] text-[12px] text-ods-attention-red-error">
|
|
334
334
|
⚠️ Please select at least one option
|
|
335
335
|
</div>
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
OVERLAY_BACKDROP_CLASS,
|
|
15
15
|
type DrawerSide,
|
|
16
16
|
} from "../ui/drawer"
|
|
17
|
-
import { useAppLayoutDrawerContainer } from "./app-layout"
|
|
17
|
+
import { useAppLayoutDrawerContainer, useAppLayoutDrawerCoordination } from "./app-layout"
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* AppLayoutDrawer is a Drawer variant that renders **inside** AppLayout's main
|
|
@@ -68,6 +68,28 @@ const AppLayoutDrawerRoot = ({
|
|
|
68
68
|
[isControlled, onOpenChange],
|
|
69
69
|
)
|
|
70
70
|
|
|
71
|
+
// Coordinate with AppLayout's mobile burger menu (the drawer covers it):
|
|
72
|
+
// opening the drawer closes the menu, and opening the menu closes the
|
|
73
|
+
// drawer via the registered close handle. Refs keep the registration
|
|
74
|
+
// effect independent of render-to-render identity changes.
|
|
75
|
+
const coordination = useAppLayoutDrawerCoordination()
|
|
76
|
+
const openRef = React.useRef(open)
|
|
77
|
+
openRef.current = open
|
|
78
|
+
const handleOpenChangeRef = React.useRef(handleOpenChange)
|
|
79
|
+
handleOpenChangeRef.current = handleOpenChange
|
|
80
|
+
|
|
81
|
+
React.useEffect(() => {
|
|
82
|
+
if (open) coordination?.notifyDrawerDidOpen()
|
|
83
|
+
}, [open, coordination])
|
|
84
|
+
|
|
85
|
+
React.useEffect(() => {
|
|
86
|
+
return coordination?.registerDrawer({
|
|
87
|
+
close: () => {
|
|
88
|
+
if (openRef.current) handleOpenChangeRef.current(false)
|
|
89
|
+
},
|
|
90
|
+
})
|
|
91
|
+
}, [coordination])
|
|
92
|
+
|
|
71
93
|
return (
|
|
72
94
|
<DrawerOpenContext.Provider value={open}>
|
|
73
95
|
<DialogPrimitive.Root
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
|
|
3
|
-
import { createContext, Suspense, useCallback, useContext, useState } from 'react'
|
|
3
|
+
import { createContext, Suspense, useCallback, useContext, useMemo, useRef, useState } from 'react'
|
|
4
4
|
import { NavigationSidebarConfig } from '../../types/navigation'
|
|
5
5
|
import { cn } from '../../utils'
|
|
6
6
|
import { NotificationDrawer } from '../features/notifications/notification-drawer'
|
|
@@ -20,6 +20,32 @@ export function useAppLayoutDrawerContainer(): HTMLElement | null {
|
|
|
20
20
|
return useContext(AppLayoutDrawerContainerContext)
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Two-way coordination between AppLayout's mobile burger menu and in-layout
|
|
25
|
+
* drawers (`AppLayoutDrawer`), which render above the menu (z-[103] vs
|
|
26
|
+
* z-[101]) — the two must never be open at the same time:
|
|
27
|
+
* - a drawer that opens calls `notifyDrawerDidOpen` so the layout closes
|
|
28
|
+
* the menu (otherwise it would resurface once the drawer closes);
|
|
29
|
+
* - each drawer registers a close handle so opening the menu via the
|
|
30
|
+
* burger button closes any open drawer instead of hiding the menu
|
|
31
|
+
* underneath it. Null outside of AppLayout.
|
|
32
|
+
*/
|
|
33
|
+
export interface AppLayoutDrawerHandle {
|
|
34
|
+
close: () => void
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
interface AppLayoutDrawerCoordination {
|
|
38
|
+
notifyDrawerDidOpen: () => void
|
|
39
|
+
/** Returns an unregister cleanup. */
|
|
40
|
+
registerDrawer: (handle: AppLayoutDrawerHandle) => () => void
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const AppLayoutDrawerCoordinationContext = createContext<AppLayoutDrawerCoordination | null>(null)
|
|
44
|
+
|
|
45
|
+
export function useAppLayoutDrawerCoordination(): AppLayoutDrawerCoordination | null {
|
|
46
|
+
return useContext(AppLayoutDrawerCoordinationContext)
|
|
47
|
+
}
|
|
48
|
+
|
|
23
49
|
export interface AppLayoutProps {
|
|
24
50
|
children: React.ReactNode
|
|
25
51
|
sidebarConfig: NavigationSidebarConfig
|
|
@@ -57,16 +83,37 @@ export function AppLayout({
|
|
|
57
83
|
const [mobileMenuOpen, setMobileMenuOpen] = useState(false)
|
|
58
84
|
const [drawerContainer, setDrawerContainer] = useState<HTMLDivElement | null>(null)
|
|
59
85
|
|
|
86
|
+
// Mirrors `mobileMenuOpen` so the toggle callback can stay identity-stable.
|
|
87
|
+
const mobileMenuOpenRef = useRef(mobileMenuOpen)
|
|
88
|
+
mobileMenuOpenRef.current = mobileMenuOpen
|
|
89
|
+
|
|
90
|
+
const drawerHandlesRef = useRef(new Set<AppLayoutDrawerHandle>())
|
|
91
|
+
|
|
60
92
|
const handleToggleMobileMenu = useCallback(() => {
|
|
61
|
-
|
|
93
|
+
const opening = !mobileMenuOpenRef.current
|
|
94
|
+
// Opening the menu closes any open in-layout drawer — otherwise the menu
|
|
95
|
+
// would open invisibly underneath it (the drawer renders above the menu).
|
|
96
|
+
if (opening) {
|
|
97
|
+
for (const handle of drawerHandlesRef.current) handle.close()
|
|
98
|
+
}
|
|
99
|
+
setMobileMenuOpen(opening)
|
|
62
100
|
}, [])
|
|
63
101
|
|
|
64
102
|
const handleCloseMobileMenu = useCallback(() => {
|
|
65
103
|
setMobileMenuOpen(false)
|
|
66
104
|
}, [])
|
|
67
105
|
|
|
106
|
+
const drawerCoordination = useMemo<AppLayoutDrawerCoordination>(() => ({
|
|
107
|
+
notifyDrawerDidOpen: () => setMobileMenuOpen(false),
|
|
108
|
+
registerDrawer: (handle) => {
|
|
109
|
+
drawerHandlesRef.current.add(handle)
|
|
110
|
+
return () => drawerHandlesRef.current.delete(handle)
|
|
111
|
+
},
|
|
112
|
+
}), [])
|
|
113
|
+
|
|
68
114
|
return (
|
|
69
115
|
<AppLayoutDrawerContainerContext.Provider value={drawerContainer}>
|
|
116
|
+
<AppLayoutDrawerCoordinationContext.Provider value={drawerCoordination}>
|
|
70
117
|
<div className={cn("flex h-screen bg-ods-bg", className)}>
|
|
71
118
|
<NavigationSidebar config={sidebarConfig} disabled={disabled} />
|
|
72
119
|
{/* Mobile Burger Menu - opens below header */}
|
|
@@ -112,6 +159,7 @@ export function AppLayout({
|
|
|
112
159
|
</div>
|
|
113
160
|
</div>
|
|
114
161
|
</div>
|
|
162
|
+
</AppLayoutDrawerCoordinationContext.Provider>
|
|
115
163
|
</AppLayoutDrawerContainerContext.Provider>
|
|
116
164
|
)
|
|
117
165
|
}
|
|
@@ -588,7 +588,7 @@ function ReplyFailureBanner({
|
|
|
588
588
|
variant="transparent"
|
|
589
589
|
onClick={onDismiss}
|
|
590
590
|
aria-label="Dismiss reply failure"
|
|
591
|
-
className="ml-auto px-2 py-0.5 text-xs font-medium uppercase tracking-wider text-ods-attention-red-error hover:bg-ods-attention-red-error
|
|
591
|
+
className="ml-auto px-2 py-0.5 text-xs font-medium uppercase tracking-wider text-ods-attention-red-error hover:bg-ods-attention-red-error-secondary border-transparent"
|
|
592
592
|
>
|
|
593
593
|
Dismiss
|
|
594
594
|
</Button>
|
|
@@ -34,14 +34,17 @@ export function ErrorState({
|
|
|
34
34
|
switch (variant) {
|
|
35
35
|
case 'error':
|
|
36
36
|
return {
|
|
37
|
-
|
|
37
|
+
// -secondary tokens, NOT `/20` alpha modifiers: the ods colors are
|
|
38
|
+
// hex CSS vars, and Tailwind 3.x can't inject alpha into those —
|
|
39
|
+
// the modifier silently produced no background at all.
|
|
40
|
+
bg: 'bg-ods-attention-red-error-secondary',
|
|
38
41
|
border: 'border-ods-attention-red-error',
|
|
39
42
|
text: 'text-ods-attention-red-error',
|
|
40
43
|
icon: 'text-ods-attention-red-error'
|
|
41
44
|
}
|
|
42
45
|
case 'warning':
|
|
43
46
|
return {
|
|
44
|
-
bg: 'bg-ods-attention-yellow-warning
|
|
47
|
+
bg: 'bg-ods-attention-yellow-warning-secondary',
|
|
45
48
|
border: 'border-ods-attention-yellow-warning',
|
|
46
49
|
text: 'text-ods-attention-yellow-warning',
|
|
47
50
|
icon: 'text-ods-attention-yellow-warning'
|
|
@@ -70,11 +70,15 @@ const FAE_MESSAGES: Message[] = [
|
|
|
70
70
|
|
|
71
71
|
function FaeChatShell({
|
|
72
72
|
withTicketInfo = false,
|
|
73
|
+
withMspOrganization = false,
|
|
74
|
+
mspLoading = false,
|
|
73
75
|
bare = false,
|
|
74
76
|
fullWidth = false,
|
|
75
77
|
modelLoading = false,
|
|
76
78
|
}: {
|
|
77
79
|
withTicketInfo?: boolean
|
|
80
|
+
withMspOrganization?: boolean
|
|
81
|
+
mspLoading?: boolean
|
|
78
82
|
bare?: boolean
|
|
79
83
|
fullWidth?: boolean
|
|
80
84
|
modelLoading?: boolean
|
|
@@ -121,6 +125,16 @@ function FaeChatShell({
|
|
|
121
125
|
}
|
|
122
126
|
: undefined
|
|
123
127
|
}
|
|
128
|
+
mspOrganization={
|
|
129
|
+
withMspOrganization
|
|
130
|
+
? {
|
|
131
|
+
name: 'TechFlow Solutions',
|
|
132
|
+
website: 'www.techflow.com',
|
|
133
|
+
href: 'https://www.techflow.com',
|
|
134
|
+
}
|
|
135
|
+
: undefined
|
|
136
|
+
}
|
|
137
|
+
isMspLoading={mspLoading}
|
|
124
138
|
/>
|
|
125
139
|
<ChatContent>
|
|
126
140
|
<ChatMessageList
|
|
@@ -204,6 +218,28 @@ export const FaeWithTicket: Story = {
|
|
|
204
218
|
render: () => <FaeChatShell withTicketInfo />,
|
|
205
219
|
}
|
|
206
220
|
|
|
221
|
+
/**
|
|
222
|
+
* Client chat home-screen header with the MSP organization branding bar —
|
|
223
|
+
* logo, "Your IT is managed by {name}" and the website link rendered inside
|
|
224
|
+
* the header card beneath the assistant identity row. This is the state of
|
|
225
|
+
* the main AI Assistant screen (with the chats list); once a chat/ticket is
|
|
226
|
+
* open, `ticketInfo` takes over the slot (see `FaeWithTicket`). The block
|
|
227
|
+
* renders only when the host has MSP info — absent it, the header stays a
|
|
228
|
+
* single identity row.
|
|
229
|
+
*/
|
|
230
|
+
export const ClientChatWithMspOrganization: Story = {
|
|
231
|
+
render: () => <FaeChatShell withMspOrganization />,
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Client chat MSP organization slot in its loading state —
|
|
236
|
+
* `MspOrganizationCardSkeleton` holds the space while tenant info resolves,
|
|
237
|
+
* so the header doesn't shift when the branding bar swaps in.
|
|
238
|
+
*/
|
|
239
|
+
export const ClientChatMspOrganizationLoading: Story = {
|
|
240
|
+
render: () => <FaeChatShell mspLoading />,
|
|
241
|
+
}
|
|
242
|
+
|
|
207
243
|
/**
|
|
208
244
|
* Full-width variant — drops the centered 600px content column on header,
|
|
209
245
|
* message list and footer. Use when embedding the Fae chat in a narrow
|
package/tailwind.config.ts
CHANGED
|
@@ -201,6 +201,31 @@ const config: Config = {
|
|
|
201
201
|
},
|
|
202
202
|
"open-yellow": "var(--ods-open-yellow-base)",
|
|
203
203
|
|
|
204
|
+
// Attention tokens (ods-colors.css). Components reference these BY
|
|
205
|
+
// NAME (error-state.tsx: `border-ods-attention-red-error` etc.) —
|
|
206
|
+
// without these mappings Tailwind silently generates NOTHING for
|
|
207
|
+
// the class and the component renders colorless in every consumer.
|
|
208
|
+
attention: {
|
|
209
|
+
"red-error": "var(--ods-attention-red-error)",
|
|
210
|
+
"red-error-hover": "var(--ods-attention-red-error-hover)",
|
|
211
|
+
"red-error-action": "var(--ods-attention-red-error-action)",
|
|
212
|
+
"red-error-secondary": "var(--ods-attention-red-error-secondary)",
|
|
213
|
+
"red-error-secondary-hover": "var(--ods-attention-red-error-secondary-hover)",
|
|
214
|
+
"red-error-secondary-action": "var(--ods-attention-red-error-secondary-action)",
|
|
215
|
+
"yellow-warning": "var(--ods-attention-yellow-warning)",
|
|
216
|
+
"yellow-warning-hover": "var(--ods-attention-yellow-warning-hover)",
|
|
217
|
+
"yellow-warning-action": "var(--ods-attention-yellow-warning-action)",
|
|
218
|
+
"yellow-warning-secondary": "var(--ods-attention-yellow-warning-secondary)",
|
|
219
|
+
"yellow-warning-secondary-hover": "var(--ods-attention-yellow-warning-secondary-hover)",
|
|
220
|
+
"yellow-warning-secondary-action": "var(--ods-attention-yellow-warning-secondary-action)",
|
|
221
|
+
"green-success": "var(--ods-attention-green-success)",
|
|
222
|
+
"green-success-hover": "var(--ods-attention-green-success-hover)",
|
|
223
|
+
"green-success-action": "var(--ods-attention-green-success-action)",
|
|
224
|
+
"green-success-secondary": "var(--ods-attention-green-success-secondary)",
|
|
225
|
+
"green-success-secondary-hover": "var(--ods-attention-green-success-secondary-hover)",
|
|
226
|
+
"green-success-secondary-action": "var(--ods-attention-green-success-secondary-action)",
|
|
227
|
+
},
|
|
228
|
+
|
|
204
229
|
// Adaptive platform color
|
|
205
230
|
current: "var(--ods-current)",
|
|
206
231
|
},
|