@nswds/app 1.9.0 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/utils.ts","../src/components/Button.tsx","../src/components/Card.tsx","../src/components/Collapsible.tsx","../src/components/DynamicFavicon.tsx","../src/components/Social.tsx","../src/components/Footer.tsx","../src/components/Icons.tsx","../src/components/Label.tsx","../src/components/Logo.tsx","../src/components/Masthead.tsx","../src/components/Navigation.tsx","../src/components/PrevNextLinks.tsx","../src/components/RadioGroup.tsx","../src/components/Sheet.tsx","../src/components/SidebarNavigation.tsx","../src/components/TableOfContents.tsx","../src/components/Tabs.tsx","../src/components/ThemeProvider.tsx","../src/components/ThemeSwitcher.tsx","../src/components/Sonner.tsx","../src/components/TocProvider.tsx","../src/components/Toggle.tsx","../src/components/ToggleGroup.tsx","../src/lib/sections.ts"],"names":["twMerge","clsx","cva","Slot","jsx","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","useEffect","jsxs","Link","LabelPrimitive","Fragment","navigation","usePathname","RadioGroupPrimitive","CircleIcon","SheetPrimitive","XIcon","NextLink","useState","getHeadings","useCallback","tableOfContents","TabsPrimitive","NextThemesProvider","useTheme","Sonner","createContext","TogglePrimitive","React","ToggleGroupPrimitive","slugify","slugifyWithCounter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,SAAS,MAAM,MAAsB,EAAA;AAC1C,EAAO,OAAAA,qBAAA,CAAQC,UAAK,CAAA,MAAM,CAAC,CAAA;AAC7B;AAEO,SAAS,QAAA,CAAS,MAAc,SAA2B,EAAA;AAChE,EAAI,IAAA,IAAA,CAAK,UAAU,SAAW,EAAA;AAC5B,IAAO,OAAA,IAAA;AAAA;AAET,EAAA,OAAO,IAAK,CAAA,KAAA,CAAM,CAAG,EAAA,SAAS,CAAI,GAAA,KAAA;AACpC;AAEO,SAAS,UAAU,GAAa,EAAA;AACrC,EAAO,OAAA,GAAA,CACJ,QAAQ,iBAAmB,EAAA,OAAO,EAClC,OAAQ,CAAA,SAAA,EAAW,GAAG,CAAA,CACtB,WAAY,EAAA;AACjB;AAEO,SAAS,UAAU,GAAa,EAAA;AACrC,EAAO,OAAA,GAAA,CAAI,WAAY,EAAA,CAAE,OAAQ,CAAA,mBAAA,EAAqB,CAAC,CAAG,EAAA,GAAA,KAAQ,GAAI,CAAA,WAAA,EAAa,CAAA;AACrF;ACfA,IAAM,cAAiB,GAAAC,0BAAA;AAAA,EACrB,6bAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR,OAAS,EAAA;AAAA,QACP,OAAS,EAAA,kEAAA;AAAA,QACT,WACE,EAAA,6JAAA;AAAA,QACF,OACE,EAAA,yJAAA;AAAA,QACF,SAAW,EAAA,wEAAA;AAAA,QACX,KAAO,EAAA,oEAAA;AAAA,QACP,IAAM,EAAA;AAAA,OACR;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,OAAS,EAAA,+BAAA;AAAA,QACT,EAAI,EAAA,+CAAA;AAAA,QACJ,EAAI,EAAA,sCAAA;AAAA,QACJ,IAAM,EAAA;AAAA;AACR,KACF;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,OAAS,EAAA,SAAA;AAAA,MACT,IAAM,EAAA;AAAA;AACR;AAEJ,CAAA;AAEA,SAAS,MAAO,CAAA;AAAA,EACd,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAU,GAAA,KAAA;AAAA,EACV,GAAG;AACL,CAGK,EAAA;AACH,EAAM,MAAA,IAAA,GAAO,UAAUC,cAAO,GAAA,QAAA;AAE9B,EACE,uBAAAC,cAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,QAAA;AAAA,MACV,SAAA,EAAW,GAAG,cAAe,CAAA,EAAE,SAAS,IAAM,EAAA,SAAA,EAAW,CAAC,CAAA;AAAA,MACzD,GAAG;AAAA;AAAA,GACN;AAEJ;ACnDA,SAAS,IAAK,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AAClE,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,MAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,qHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAW,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACxE,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,aAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,4JAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,SAAU,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACvE,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,YAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,4BAAA,EAA8B,SAAS,CAAA;AAAA,MACpD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,eAAgB,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AAC7E,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,kBAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACvD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAW,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACxE,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,aAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,gEAAA,EAAkE,SAAS,CAAA;AAAA,MACxF,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAY,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACzE,EAAO,uBAAAA,cAAC,CAAA,KAAA,EAAA,EAAI,WAAU,EAAA,cAAA,EAAe,SAAW,EAAA,EAAA,CAAG,MAAQ,EAAA,SAAS,CAAI,EAAA,GAAG,KAAO,EAAA,CAAA;AACpF;AAEA,SAAS,UAAW,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACxE,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,aAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,yCAAA,EAA2C,SAAS,CAAA;AAAA,MACjE,GAAG;AAAA;AAAA,GACN;AAEJ;ACpEA,SAAS,WAAY,CAAA,EAAE,GAAG,KAAA,EAAiE,EAAA;AACzF,EAAA,uBAAOA,cAAsB,CAAAC,+BAAA,CAAA,IAAA,EAArB,EAA0B,WAAU,EAAA,aAAA,EAAe,GAAG,KAAO,EAAA,CAAA;AACvE;AAEA,SAASC,mBAAmB,CAAA;AAAA,EAC1B,GAAG;AACL,CAAyE,EAAA;AACvE,EAAA,uBAAOF,cAAsB,CAAAC,+BAAA,CAAA,kBAAA,EAArB,EAAwC,WAAU,EAAA,qBAAA,EAAuB,GAAG,KAAO,EAAA,CAAA;AAC7F;AAEA,SAASE,mBAAmB,CAAA;AAAA,EAC1B,GAAG;AACL,CAAyE,EAAA;AACvE,EAAA,uBAAOH,cAAsB,CAAAC,+BAAA,CAAA,kBAAA,EAArB,EAAwC,WAAU,EAAA,qBAAA,EAAuB,GAAG,KAAO,EAAA,CAAA;AAC7F;ACTO,SAAS,cAAe,CAAA,EAAE,gBAAkB,EAAA,eAAA,EAAwC,EAAA;AACzF,EAAAG,eAAA,CAAU,MAAM;AAEd,IAAA,MAAM,gBAAgB,MAAM;AAC1B,MAAA,MAAM,UAAa,GAAA,MAAA,CAAO,UAAW,CAAA,8BAA8B,CAAE,CAAA,OAAA;AACrE,MAAM,MAAA,OAAA,GAAU,QAAS,CAAA,aAAA,CAAc,kBAAkB,CAAA;AAEzD,MAAA,IAAI,OAAS,EAAA;AACX,QAAQ,OAAA,CAAA,IAAA,GAAO,aAAa,eAAkB,GAAA,gBAAA;AAAA,OACzC,MAAA;AAEL,QAAM,MAAA,UAAA,GAAa,QAAS,CAAA,aAAA,CAAc,MAAM,CAAA;AAChD,QAAA,UAAA,CAAW,GAAM,GAAA,MAAA;AACjB,QAAW,UAAA,CAAA,IAAA,GAAO,aAAa,eAAkB,GAAA,gBAAA;AACjD,QAAS,QAAA,CAAA,IAAA,CAAK,YAAY,UAAU,CAAA;AAAA;AACtC,KACF;AAGA,IAAc,aAAA,EAAA;AAGd,IAAM,MAAA,UAAA,GAAa,MAAO,CAAA,UAAA,CAAW,8BAA8B,CAAA;AACnE,IAAW,UAAA,CAAA,gBAAA,CAAiB,UAAU,aAAa,CAAA;AAGnD,IAAA,OAAO,MAAM,UAAA,CAAW,mBAAoB,CAAA,QAAA,EAAU,aAAa,CAAA;AAAA,GAClE,EAAA,CAAC,gBAAkB,EAAA,eAAe,CAAC,CAAA;AAGtC,EAAO,OAAA,IAAA;AACT;ACtCO,IAAM,MAAS,GAAA;AAAA,EACpB,QAAQ,CAAC,KAAA,qBACPJ,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,WAAA,EAAa,GAAG,KAC/C,EAAA,QAAA,kBAAAA,eAAC,GAAE,EAAA,EAAA,QAAA,EAAS,WACV,QAAAA,kBAAAA,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,QAAS,EAAA,SAAA;AAAA,MACT,CAAE,EAAA,+sBAAA;AAAA,MACF,QAAS,EAAA;AAAA;AAAA,KAEb,CACF,EAAA,CAAA;AAAA,EAEF,UAAU,CAAC,KAAA,qBACTA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,WAAA,EAAa,GAAG,KAC/C,EAAA,QAAA,kBAAAA,eAAC,GAAE,EAAA,EAAA,QAAA,EAAS,WACV,QAAAA,kBAAAA,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,cAAA;AAAA,MACL,CAAE,EAAA;AAAA;AAAA,KAEN,CACF,EAAA,CAAA;AAAA,EAEF,SAAS,CAAC,KAAA,qBACRA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,WAAA,EAAa,GAAG,KAC/C,EAAA,QAAA,kBAAAA,eAAC,GAAE,EAAA,EAAA,QAAA,EAAS,WACV,QAAAA,kBAAAA,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,cAAA;AAAA,MACL,CAAE,EAAA;AAAA;AAAA,KAEN,CACF,EAAA,CAAA;AAAA,EAEF,SAAS,CAAC,KAAA,qBACRA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,WAAA,EAAa,GAAG,KAC/C,EAAA,QAAA,kBAAAA,eAAC,GAAE,EAAA,EAAA,QAAA,EAAS,WACV,QAAAA,kBAAAA,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,cAAA;AAAA,MACL,CAAE,EAAA;AAAA;AAAA,KAEN,CACF,EAAA;AAEJ;ACvCA,SAAS,UAAW,CAAA;AAAA,EAClB,IAAA;AAAA,EACA,IAAM,EAAA,IAAA;AAAA,EACN;AACF,CAIG,EAAA;AACD,EAAA,uBACGK,eAAA,CAAAC,sBAAA,EAAA,EAAK,IAAY,EAAA,SAAA,EAAU,OAC1B,EAAA,QAAA,EAAA;AAAA,oBAAAN,cAAC,CAAA,MAAA,EAAA,EAAK,SAAU,EAAA,SAAA,EAAW,QAAS,EAAA,CAAA;AAAA,oBACpCA,cAAAA,CAAC,IAAK,EAAA,EAAA,SAAA,EAAU,2FAA4F,EAAA;AAAA,GAC9G,EAAA,CAAA;AAEJ;AAEA,SAAS,UAAa,GAAA;AACpB,EACE,uBAAAK,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,kHACb,EAAA,QAAA,EAAA;AAAA,oBAACA,eAAA,CAAA,GAAA,EAAA,EAAE,WAAU,0CAA2C,EAAA,QAAA,EAAA;AAAA,MAAA,iBAAA;AAAA,MACpC,iBAAA,IAAI,IAAK,EAAA,EAAE,WAAY,EAAA;AAAA,MAAE;AAAA,KAC7C,EAAA,CAAA;AAAA,oBACAL,cAAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,cACb,QAAAA,kBAAAA,cAAAA,CAAC,UAAW,EAAA,EAAA,IAAA,EAAK,+BAAgC,EAAA,IAAA,EAAM,MAAO,CAAA,MAAA,EAAQ,iCAEtE,CACF,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;AAEO,SAAS,MAAS,GAAA;AACvB,EACE,uBAAAA,eAAC,QAAO,EAAA,EAAA,SAAA,EAAU,0DAChB,QAAAA,kBAAAA,cAAAA,CAAC,cAAW,CACd,EAAA,CAAA;AAEJ;ACzCO,IAAM,KAAQ,GAAA;AAAA,EACnB,gBAAgB,CAAC,KAAA,qBACfA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,snBAAqnB,CAC/nB,EAAA,CAAA;AAAA,EAEF,aAAa,CAAC,KAAA,qBACZA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,8YAA6Y,CACvZ,EAAA,CAAA;AAAA,EAEF,QAAQ,CAAC,KAAA,qBACPA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,igBAAggB,CAC1gB,EAAA,CAAA;AAAA,EAEF,cAAc,CAAC,KAAA,qBACbA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,waAAua,CACjb,EAAA,CAAA;AAAA,EAEF,OAAO,CAAC,KAAA,qBACNA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,wJAAuJ,CACjK,EAAA,CAAA;AAAA,EAEF,cAAc,CAAC,KAAA,qBACbA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,+JAA8J,CACxK,EAAA,CAAA;AAAA,EAEF,cAAc,CAAC,KAAA,qBACbA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,+JAA8J,CACxK,EAAA,CAAA;AAAA,EAEF,eAAe,CAAC,KAAA,qBACdA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,8JAA6J,CACvK,EAAA,CAAA;AAAA,EAEF,YAAY,CAAC,KAAA,qBACXA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,6IAA4I,CACtJ,EAAA,CAAA;AAAA,EAEF,OAAO,CAAC,KAAA,qBACNA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,qOAAoO,CAC9O,EAAA,CAAA;AAAA,EAEF,cAAc,CAAC,KAAA,qBACbA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,kRAAiR,CAC3R,EAAA,CAAA;AAAA,EAEF,UAAU,CAAC,KAAA,qBACTA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,wQAAuQ,CACjR,EAAA,CAAA;AAAA,EAEF,MAAM,CAAC,KAAA,qBACLA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,gTAA+S,CACzT,EAAA,CAAA;AAAA,EAEF,WAAW,CAAC,KAAA,qBACVA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,oXAAmX,CAC7X,EAAA,CAAA;AAAA,EAEF,cAAc,CAAC,KAAA,qBACbA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,0LAAyL,CACnM,EAAA,CAAA;AAAA,EAEF,eAAe,CAAC,KAAA,qBACdA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,0LAAyL,CACnM,EAAA,CAAA;AAAA,EAEF,QAAQ,CAAC,KAAA,qBACPA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,ueAAse,CAChf,EAAA,CAAA;AAAA,EAEF,SAAS,CAAC,KAAA,qBACRA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,oRAAmR,CAC7R,EAAA,CAAA;AAAA,EAEF,kBAAkB,CAAC,KAAA,qBACjBA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,gvBAA+uB,CACzvB,EAAA,CAAA;AAAA,EAEF,mBAAmB,CAAC,KAAA,qBAClBA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,8UAA6U,CACvV,EAAA,CAAA;AAAA,EAEF,oBAAoB,CAAC,KAAA,qBACnBA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,4UAA2U,CACrV,EAAA,CAAA;AAAA,EAEF,UAAU,CAAC,KAAA,qBACTA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,+YAA8Y,CACxZ,EAAA,CAAA;AAAA,EAEF,MAAM,CAAC,KAAA,qBACLA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,iOAAgO,CAC1O,EAAA,CAAA;AAAA,EAEF,OAAO,CAAC,KAAA,qBACNA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,mfAAkf,CAC5f,EAAA,CAAA;AAAA,EAEF,aAAa,CAAC,KAAA,qBACZA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,uNAAsN,CAChO,EAAA,CAAA;AAAA,EAEF,WAAW,CAAC,KAAA,qBACVA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,8lBAA6lB,CACvmB,EAAA,CAAA;AAAA,EAEF,MAAM,CAAC,KAAA,qBACLA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,8oBAA6oB,CACvpB,EAAA,CAAA;AAAA,EAEF,MAAM,CAAC,KAAA,qBACLA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,mfAAkf,CAC5f,EAAA,CAAA;AAAA,EAEF,YAAY,CAAC,KAAA,qBACXA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,iiCAAgiC,CAC1iC,EAAA,CAAA;AAAA,EAEF,MAAM,CAAC,KAAA,qBACLA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,ogBAAmgB,CAC7gB,EAAA,CAAA;AAAA,EAEF,MAAM,CAAC,KAAA,qBACLA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,wnBAAunB,CACjoB,EAAA,CAAA;AAAA,EAEF,OAAO,CAAC,KAAA,qBACNA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,6XAA4X,CACtY,EAAA,CAAA;AAAA,EAEF,QAAQ,CAAC,KAAA,qBACPA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,4XAA2X,CACrY,EAAA,CAAA;AAAA,EAEF,MAAM,CAAC,KAAA,qBACLA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,0UAAyU,CACnV,EAAA,CAAA;AAAA,EAEF,YAAY,CAAC,KAAA,qBACXA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,kTAAiT,CAC3T,EAAA,CAAA;AAAA,EAEF,WAAW,CAAC,KAAA,qBACVA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,kTAAiT,CAC3T,EAAA,CAAA;AAAA,EAEF,OAAO,CAAC,KAAA,qBACNA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,gOAA+N,CACzO,EAAA,CAAA;AAAA,EAEF,aAAa,CAAC,KAAA,qBACZA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,uZAAsZ,CACha,EAAA,CAAA;AAAA,EAEF,SAAS,CAAC,KAAA,qBACRA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,ytBAAwtB,CACluB,EAAA,CAAA;AAAA,EAEF,OAAO,CAAC,KAAA,qBACNA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,4hBAA2hB,CACriB,EAAA,CAAA;AAAA,EAEF,mBAAmB,CAAC,KAAA,qBAClBA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,wUAAuU,CACjV,EAAA,CAAA;AAAA,EAEF,QAAQ,CAAC,KAAA,qBACPA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,kHAAiH,CAC3H,EAAA,CAAA;AAAA,EAEF,QAAQ,CAAC,KAAA,qBACPA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,6RAA4R,CACtS,EAAA,CAAA;AAAA,EAEF,qBAAqB,CAAC,KAAA,qBACpBA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,8ZAA6Z,CACva,EAAA,CAAA;AAAA,EAEF,OAAO,CAAC,KAAA,qBACNA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,+pBAA8pB,CACxqB,EAAA,CAAA;AAAA,EAEF,iBAAiB,CAAC,KAAA,qBAChBA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,oJAAmJ,CAC7J,EAAA,CAAA;AAAA,EAEF,OAAO,CAAC,KAAA,qBACNA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,iOAAgO,CAC1O,EAAA,CAAA;AAAA,EAEF,aAAa,CAAC,KAAA,qBACZA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,iTAAgT,CAC1T,EAAA,CAAA;AAAA,EAEF,aAAa,CAAC,KAAA,qBACZA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,iTAAgT,CAC1T,EAAA,CAAA;AAAA,EAEF,QAAQ,CAAC,KAAA,qBACPA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,+YAA8Y,CACxZ,EAAA,CAAA;AAAA,EAEF,MAAM,CAAC,KAAA,qBACLA,cAAAA,CAAC,SAAI,IAAK,EAAA,cAAA,EAAe,OAAQ,EAAA,gBAAA,EAAkB,GAAG,KACpD,EAAA,QAAA,kBAAAA,eAAC,MAAK,EAAA,EAAA,CAAA,EAAE,gOAA+N,CACzO,EAAA;AAEJ;AC3PA,SAAS,KAAM,CAAA,EAAE,SAAW,EAAA,GAAG,OAA2D,EAAA;AACxF,EAAA,uBACEA,cAAAA;AAAA,IAAgBO,yBAAA,CAAA,IAAA;AAAA,IAAf;AAAA,MACC,WAAU,EAAA,OAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,qNAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AClBO,SAAS,KAAK,KAA8C,EAAA;AACjE,EACE,uBAAAF,gBAAAG,mBACE,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAAR,cAAC,CAAA,MAAA,EAAA,EAAK,SAAU,EAAA,SAAA,EAAU,QAAc,EAAA,gBAAA,EAAA,CAAA;AAAA,oBACxCK,gBAAC,KAAI,EAAA,EAAA,OAAA,EAAQ,eAAc,aAAY,EAAA,MAAA,EAAQ,GAAG,KAChD,EAAA,QAAA,EAAA;AAAA,sBAAAL,cAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,QAAS,EAAA,SAAA;AAAA,UACT,QAAS,EAAA,SAAA;AAAA,UACT,CAAE,EAAA,8tFAAA;AAAA,UACF,SAAU,EAAA;AAAA;AAAA,OACZ;AAAA,sBAEAA,cAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,QAAS,EAAA,SAAA;AAAA,UACT,QAAS,EAAA,SAAA;AAAA,UACT,CAAE,EAAA,gmDAAA;AAAA,UACF,SAAU,EAAA;AAAA;AAAA,OACZ;AAAA,sBAEAA,cAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,CAAE,EAAA,4iFAAA;AAAA,UACF,SAAU,EAAA;AAAA;AAAA,OACZ;AAAA,sBAEAA,cAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,CAAE,EAAA,ueAAA;AAAA,UACF,SAAU,EAAA;AAAA;AAAA;AACZ,KACF,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;AC9BO,SAAS,QAAW,GAAA;AACzB,EACE,uBAAAA,eAAC,KAAI,EAAA,EAAA,SAAA,EAAU,gDACb,QAAAA,kBAAAA,cAAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,4EACb,EAAA,QAAA,kBAAAA,eAAC,KAAI,EAAA,EAAA,SAAA,EAAU,4BACb,EAAA,QAAA,kBAAAA,cAAC,CAAA,GAAA,EAAA,EAAE,WAAU,oBAAqB,EAAA,QAAA,EAAA,0BAAA,EAAwB,CAC5D,EAAA,CAAA,EACF,CACF,EAAA,CAAA;AAEJ;ACFO,SAAS,UAAW,CAAA;AAAA,EACzB,SAAA;AAAA,EACA,WAAA;AAAA,cACAS;AACF,CAIG,EAAA;AACD,EAAA,MAAM,WAAWC,sBAAY,EAAA;AAE7B,EACE,uBAAAV,eAAC,KAAI,EAAA,EAAA,SAAA,EAAWH,uBAAK,sBAAwB,EAAA,SAAS,GACpD,QAAAG,kBAAAA,cAAAA,CAAC,QAAG,IAAK,EAAA,MAAA,EAAO,WAAU,qBACvB,EAAA,QAAA,EAAAS,YAAA,CAAW,IAAI,CAAC,OAAA,qBACfJ,eAAAA,CAAC,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAAL,cAAC,CAAA,IAAA,EAAA,EAAG,SAAU,EAAA,0DAAA,EACX,kBAAQ,KACX,EAAA,CAAA;AAAA,oBACAA,cAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,MAAA;AAAA,QACL,SAAU,EAAA,2FAAA;AAAA,QAET,QAAA,EAAA,OAAA,CAAQ,KAAM,CAAA,GAAA,CAAI,CAAC,IAAA,qBAClBA,cAAC,CAAA,IAAA,EAAA,EAAmB,SAAU,EAAA,wCAAA,EAC5B,QAAAA,kBAAAA,cAAAA;AAAA,UAACM,sBAAAA;AAAA,UAAA;AAAA,YACC,MAAM,IAAK,CAAA,IAAA;AAAA,YACX,OAAS,EAAA,WAAA;AAAA,YACT,SAAWT,EAAAA,sBAAAA;AAAA,cACT,6EAAA;AAAA,cACA,uEAAA;AAAA,cACA,wBAAA;AAAA,cACA,sDAAA;AAAA,cACA,IAAA,CAAK,SAAS,QACZ,IAAA;AAAA,aACJ;AAAA,YAEC,QAAK,EAAA,IAAA,CAAA;AAAA;AAAA,SACR,EAAA,EAdO,IAAK,CAAA,IAed,CACD;AAAA;AAAA;AACH,GAAA,EAAA,EA1BO,OAAQ,CAAA,KA2BjB,CACD,CAAA,EACH,CACF,EAAA,CAAA;AAEJ;AChDA,SAAS,UAAU,KAA8C,EAAA;AAC/D,EAAA,uBACEG,cAAAA,CAAC,KAAI,EAAA,EAAA,OAAA,EAAQ,aAAY,aAAY,EAAA,MAAA,EAAQ,GAAG,KAAA,EAC9C,QAAAA,kBAAAA,cAAAA,CAAC,MAAK,EAAA,EAAA,CAAA,EAAE,mGAAkG,CAC5G,EAAA,CAAA;AAEJ;AAEA,SAAS,QAAS,CAAA;AAAA,EAChB,KAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAM,GAAA,MAAA;AAAA,EACN,GAAG;AACL,CAIG,EAAA;AACD,EAAA,uBACEK,eAAAA,CAAC,KAAK,EAAA,EAAA,GAAG,KACP,EAAA,QAAA,EAAA;AAAA,oBAAAL,eAAC,IAAG,EAAA,EAAA,SAAA,EAAU,mEACX,QAAQ,EAAA,GAAA,KAAA,MAAA,GAAS,SAAS,UAC7B,EAAA,CAAA;AAAA,oBACAA,cAAAA,CAAC,IAAG,EAAA,EAAA,SAAA,EAAU,QACZ,QAAAK,kBAAAA,eAAAA;AAAA,MAACC,sBAAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,SAAWT,EAAAA,sBAAAA;AAAA,UACT,qIAAA;AAAA,UACA,QAAQ,UAAc,IAAA;AAAA,SACxB;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,0BACDG,cAAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cACC,SAAWH,EAAAA,sBAAAA,CAAK,gCAAkC,EAAA,GAAA,KAAQ,cAAc,cAAc;AAAA;AAAA;AACxF;AAAA;AAAA,KAEJ,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;AAMO,SAAS,aAAA,CAAc,cAAEY,YAAA,EAAkC,EAAA;AAChE,EAAA,MAAM,WAAWC,sBAAY,EAAA;AAC7B,EAAA,MAAM,WAAWD,YAAW,CAAA,OAAA,CAAQ,CAAC,OAAA,KAAY,QAAQ,KAAK,CAAA;AAC9D,EAAA,MAAM,YAAY,QAAS,CAAA,SAAA,CAAU,CAAC,IAAS,KAAA,IAAA,CAAK,SAAS,QAAQ,CAAA;AACrE,EAAA,MAAM,eAAe,SAAY,GAAA,EAAA,GAAK,QAAS,CAAA,SAAA,GAAY,CAAC,CAAI,GAAA,IAAA;AAChE,EAAA,MAAM,WAAW,SAAY,GAAA,EAAA,GAAK,QAAS,CAAA,SAAA,GAAY,CAAC,CAAI,GAAA,IAAA;AAE5D,EAAI,IAAA,CAAC,QAAY,IAAA,CAAC,YAAc,EAAA;AAC9B,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,uBACEJ,eAAAA,CAAC,IAAG,EAAA,EAAA,SAAA,EAAU,iEACX,EAAA,QAAA,EAAA;AAAA,IAAA,YAAA,oBAAgBL,cAAC,CAAA,QAAA,EAAA,EAAS,GAAI,EAAA,UAAA,EAAY,GAAG,YAAc,EAAA,CAAA;AAAA,IAC3D,4BAAYA,cAAAA,CAAC,YAAS,SAAU,EAAA,oBAAA,EAAsB,GAAG,QAAU,EAAA;AAAA,GACtE,EAAA,CAAA;AAEJ;AC9DA,SAAS,UAAW,CAAA;AAAA,EAClB,SAAA;AAAA,EACA,GAAG;AACL,CAA0D,EAAA;AACxD,EAAA,uBACEA,cAAAA;AAAA,IAAqBW,8BAAA,CAAA,IAAA;AAAA,IAApB;AAAA,MACC,WAAU,EAAA,aAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,YAAA,EAAc,SAAS,CAAA;AAAA,MACpC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAe,CAAA;AAAA,EACtB,SAAA;AAAA,EACA,GAAG;AACL,CAA0D,EAAA;AACxD,EAAA,uBACEX,cAAAA;AAAA,IAAqBW,8BAAA,CAAA,IAAA;AAAA,IAApB;AAAA,MACC,WAAU,EAAA,kBAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,wXAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAAX,kBAAAA,cAAAA;AAAA,QAAqBW,8BAAA,CAAA,SAAA;AAAA,QAApB;AAAA,UACC,WAAU,EAAA,uBAAA;AAAA,UACV,SAAU,EAAA,2CAAA;AAAA,UAEV,QAAAX,kBAAAA,cAAAA,CAACY,sBAAW,EAAA,EAAA,SAAA,EAAU,iFAAkF,EAAA;AAAA;AAAA;AAC1G;AAAA,GACF;AAEJ;AClCA,SAAS,KAAM,CAAA,EAAE,GAAG,KAAA,EAA2D,EAAA;AAC7E,EAAA,uBAAOZ,cAAgB,CAAAa,yBAAA,CAAA,IAAA,EAAf,EAAoB,WAAU,EAAA,OAAA,EAAS,GAAG,KAAO,EAAA,CAAA;AAC3D;AAEA,SAAS,YAAa,CAAA,EAAE,GAAG,KAAA,EAA8D,EAAA;AACvF,EAAA,uBAAOb,cAAgB,CAAAa,yBAAA,CAAA,OAAA,EAAf,EAAuB,WAAU,EAAA,eAAA,EAAiB,GAAG,KAAO,EAAA,CAAA;AACtE;AAEA,SAAS,UAAW,CAAA,EAAE,GAAG,KAAA,EAA4D,EAAA;AACnF,EAAA,uBAAOb,cAAgB,CAAAa,yBAAA,CAAA,KAAA,EAAf,EAAqB,WAAU,EAAA,aAAA,EAAe,GAAG,KAAO,EAAA,CAAA;AAClE;AAEA,SAAS,WAAY,CAAA,EAAE,GAAG,KAAA,EAA6D,EAAA;AACrF,EAAA,uBAAOb,cAAgB,CAAAa,yBAAA,CAAA,MAAA,EAAf,EAAsB,WAAU,EAAA,cAAA,EAAgB,GAAG,KAAO,EAAA,CAAA;AACpE;AAEA,SAAS,YAAa,CAAA;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAwD,EAAA;AACtD,EAAA,uBACEb,cAAAA;AAAA,IAAgBa,yBAAA,CAAA,OAAA;AAAA,IAAf;AAAA,MACC,WAAU,EAAA,eAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,wJAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,YAAa,CAAA;AAAA,EACpB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAO,GAAA,OAAA;AAAA,EACP,GAAG;AACL,CAEG,EAAA;AACD,EACE,uBAAAR,gBAAC,WACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAAL,eAAC,YAAa,EAAA,EAAA,CAAA;AAAA,oBACdK,eAAAA;AAAA,MAAgBQ,yBAAA,CAAA,OAAA;AAAA,MAAf;AAAA,QACC,WAAU,EAAA,eAAA;AAAA,QACV,SAAW,EAAA,EAAA;AAAA,UACT,4MAAA;AAAA,UACA,SAAS,OACP,IAAA,kIAAA;AAAA,UACF,SAAS,MACP,IAAA,+HAAA;AAAA,UACF,SAAS,KACP,IAAA,0GAAA;AAAA,UACF,SAAS,QACP,IAAA,mHAAA;AAAA,UACF;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,0BACDR,eAAAA,CAAgBQ,yBAAf,CAAA,KAAA,EAAA,EAAqB,WAAU,4OAC9B,EAAA,QAAA,EAAA;AAAA,4BAAAb,cAAAA,CAACc,iBAAM,EAAA,EAAA,SAAA,EAAU,QAAS,EAAA,CAAA;AAAA,4BAC1Bd,cAAAA,CAAC,MAAK,EAAA,EAAA,SAAA,EAAU,WAAU,QAAK,EAAA,OAAA,EAAA;AAAA,WACjC,EAAA;AAAA;AAAA;AAAA;AACF,GACF,EAAA,CAAA;AAEJ;AAEA,SAAS,WAAY,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACzE,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,cAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,2BAAA,EAA6B,SAAS,CAAA;AAAA,MACnD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAY,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACzE,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,cAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,iCAAA,EAAmC,SAAS,CAAA;AAAA,MACzD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAW,CAAA,EAAE,SAAW,EAAA,GAAG,OAA4D,EAAA;AAC9F,EAAA,uBACEA,cAAAA;AAAA,IAAgBa,yBAAA,CAAA,KAAA;AAAA,IAAf;AAAA,MACC,WAAU,EAAA,aAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACvD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAiB,CAAA;AAAA,EACxB,SAAA;AAAA,EACA,GAAG;AACL,CAA4D,EAAA;AAC1D,EAAA,uBACEb,cAAAA;AAAA,IAAgBa,yBAAA,CAAA,WAAA;AAAA,IAAf;AAAA,MACC,WAAU,EAAA,mBAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACvD,GAAG;AAAA;AAAA,GACN;AAEJ;ACpGO,SAAS,iBAAkB,CAAA;AAAA,EAChC,SAAA;AAAA,EACA,WAAA;AAAA,cACAJ;AACF,CAIG,EAAA;AACD,EAAA,MAAM,WAAWC,sBAAY,EAAA;AAE7B,EACE,uBAAAV,eAAC,KAAI,EAAA,EAAA,SAAA,EAAWH,uBAAK,sBAAwB,EAAA,SAAS,CACpD,EAAA,QAAA,kBAAAG,cAAC,CAAA,IAAA,EAAA,EAAG,MAAK,MAAO,EAAA,SAAA,EAAU,uBACvB,QAAW,EAAAS,YAAA,CAAA,GAAA,CAAI,CAAC,OAAS,EAAA,YAAA,qBACxBJ,eAAAA,CAAC,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAAL,cAAC,CAAA,IAAA,EAAA,EAAG,SAAU,EAAA,0DAAA,EACX,kBAAQ,KACX,EAAA,CAAA;AAAA,oBACAA,cAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,MAAA;AAAA,QACL,SAAU,EAAA,2FAAA;AAAA,QAET,QAAQ,EAAA,OAAA,CAAA,KAAA,CAAM,GAAI,CAAA,CAAC,yBAClBA,cAAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YAEC,IAAA;AAAA,YACA,QAAA;AAAA,YACA,WAAA,EAAa,gBAAgB,MAAM;AAAA,aAAC,CAAA;AAAA,YACpC,KAAO,EAAA;AAAA,WAAA;AAAA,UAJF,IAAK,CAAA;AAAA,SAMb;AAAA;AAAA;AACH,GAjBO,EAAA,EAAA,YAkBT,CACD,CAAA,EACH,CACF,EAAA,CAAA;AAEJ;AAEA,SAAS,YAAY,EAAE,IAAA,EAAM,QAAU,EAAA,WAAA,EAAa,OAA2B,EAAA;AAC7E,EAAM,MAAA,WAAA,GAAc,MAAM,OAAQ,CAAA,IAAA,CAAK,KAAK,CAAK,IAAA,IAAA,CAAK,MAAM,MAAS,GAAA,CAAA;AACrE,EAAM,MAAA,QAAA,GAAW,aAAa,IAAK,CAAA,IAAA;AAEnC,EAAA,MAAM,eAAkBH,GAAAA,sBAAAA;AAAA,IACtB,gGAAA;AAAA,IACA,2FAAA;AAAA,IACA,6EAAA;AAAA,IACA,QACE,IAAA;AAAA,GACJ;AAEA,EAAA,uBACEG,cAAAA,CAAC,IAAG,EAAA,EAAA,SAAA,EAAU,wCACX,EAAA,QAAA,EAAA,WAAA,mBACCK,eAAAA,CAAC,WAAY,EAAA,EAAA,SAAA,EAAU,QAAS,EAAA,WAAA,EAAa,QAC3C,EAAA,QAAA,EAAA;AAAA,oBAAAL,cAACE,CAAAA,mBAAAA,EAAA,EAAmB,OAAA,EAAO,MACzB,QAAAG,kBAAAA,eAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWR,sBAAK,CAAA,eAAA,EAAiB,+CAA+C,CAAA;AAAA,QAEhF,QAAA,EAAA;AAAA,0BAAAG,cAAAA,CAAC,MAAM,EAAA,EAAA,QAAA,EAAA,IAAA,CAAK,KAAM,EAAA,CAAA;AAAA,0BAClBA,cAAAA;AAAA,YAAC,KAAM,CAAA,aAAA;AAAA,YAAN;AAAA,cACC,SAAWH,EAAAA,sBAAAA;AAAA,gBACT,+CAAA;AAAA,gBACA;AAAA;AACF;AAAA;AACF;AAAA;AAAA,KAEJ,EAAA,CAAA;AAAA,oBACAG,cAAAA,CAACG,mBAAA,EAAA,EACC,QAAAH,kBAAAA,cAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,SAAWH,EAAAA,sBAAAA;AAAA,UACT;AAAA,SACF;AAAA,QAEC,eAAK,KACJ,IAAA,IAAA,CAAK,MAAM,GAAI,CAAA,CAAC,8BACdG,cAAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YAEC,IAAM,EAAA,SAAA;AAAA,YACN,QAAA;AAAA,YACA,WAAA;AAAA,YACA,OAAO,KAAQ,GAAA;AAAA,WAAA;AAAA,UAJV,SAAU,CAAA;AAAA,SAMlB;AAAA;AAAA,KAEP,EAAA;AAAA,GAAA,EACF,CAEA,mBAAAA,cAAC,CAAAe,sBAAA,EAAA,EAAS,IAAM,EAAA,IAAA,CAAK,IAAM,EAAA,OAAA,EAAS,WAAa,EAAA,SAAA,EAAW,eACzD,EAAA,QAAA,EAAA,IAAA,CAAK,OACR,CAEJ,EAAA,CAAA;AAEJ;ACjGO,SAAS,eAAA,CAAgB,EAAE,eAAA,EAAyC,EAAA;AACzE,EAAM,MAAA,CAAC,gBAAgB,iBAAiB,CAAA,GAAIC,eAAS,eAAgB,CAAA,CAAC,GAAG,EAAE,CAAA;AAE3E,EAAMC,MAAAA,YAAAA,GAAcC,iBAAY,CAAA,CAACC,gBAA2C,KAAA;AAC1E,IAAOA,OAAAA,gBAAAA,CACJ,QAAQ,CAAC,IAAA,KAAS,CAAC,IAAK,CAAA,EAAA,EAAI,GAAG,IAAK,CAAA,QAAA,CAAS,IAAI,CAAC,KAAA,KAAU,MAAM,EAAE,CAAC,CAAC,CACtE,CAAA,GAAA,CAAI,CAAC,EAAO,KAAA;AACX,MAAM,MAAA,EAAA,GAAK,QAAS,CAAA,cAAA,CAAe,EAAE,CAAA;AACrC,MAAI,IAAA,CAAC,IAAW,OAAA,IAAA;AAEhB,MAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,gBAAA,CAAiB,EAAE,CAAA;AACxC,MAAM,MAAA,QAAA,GAAW,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;AAEjD,MAAA,MAAM,MAAM,MAAO,CAAA,OAAA,GAAU,EAAG,CAAA,qBAAA,GAAwB,GAAM,GAAA,QAAA;AAC9D,MAAO,OAAA,EAAE,IAAI,GAAI,EAAA;AAAA,KAClB,CACA,CAAA,MAAA,CAAO,CAAC,CAAA,KAAwC,MAAM,IAAI,CAAA;AAAA,GAC/D,EAAG,EAAE,CAAA;AAEL,EAAAf,gBAAU,MAAM;AACd,IAAI,IAAA,eAAA,CAAgB,WAAW,CAAG,EAAA;AAClC,IAAM,MAAA,QAAA,GAAWa,aAAY,eAAe,CAAA;AAC5C,IAAA,SAAS,QAAW,GAAA;AAClB,MAAA,MAAM,MAAM,MAAO,CAAA,OAAA;AACnB,MAAI,IAAA,OAAA,GAAU,QAAS,CAAA,CAAC,CAAE,CAAA,EAAA;AAC1B,MAAA,KAAA,MAAW,WAAW,QAAU,EAAA;AAC9B,QAAI,IAAA,GAAA,IAAO,OAAQ,CAAA,GAAA,GAAM,EAAI,EAAA;AAC3B,UAAA,OAAA,GAAU,OAAQ,CAAA,EAAA;AAAA,SACb,MAAA;AACL,UAAA;AAAA;AACF;AAEF,MAAA,iBAAA,CAAkB,OAAO,CAAA;AAAA;AAE3B,IAAA,MAAA,CAAO,iBAAiB,QAAU,EAAA,QAAA,EAAU,EAAE,OAAA,EAAS,MAAM,CAAA;AAC7D,IAAS,QAAA,EAAA;AACT,IAAA,OAAO,MAAM;AACX,MAAO,MAAA,CAAA,mBAAA,CAAoB,UAAU,QAAQ,CAAA;AAAA,KAC/C;AAAA,GACC,EAAA,CAACA,YAAa,EAAA,eAAe,CAAC,CAAA;AAEjC,EAAA,SAAS,SAAS,OAA8B,EAAA;AAC9C,IAAI,IAAA,OAAA,CAAQ,OAAO,cAAgB,EAAA;AACjC,MAAO,OAAA,IAAA;AAAA;AAET,IAAI,IAAA,CAAC,QAAQ,QAAU,EAAA;AACrB,MAAO,OAAA,KAAA;AAAA;AAET,IAAA,OAAO,OAAQ,CAAA,QAAA,CAAS,SAAU,CAAA,QAAQ,CAAI,GAAA,EAAA;AAAA;AAGhD,EAAA,uBACEjB,cAAC,CAAA,KAAA,EAAA,EAAI,WAAU,iIACb,EAAA,QAAA,kBAAAA,eAAC,KAAI,EAAA,EAAA,iBAAA,EAAgB,oBAAqB,EAAA,SAAA,EAAU,QACjD,QAAgB,EAAA,eAAA,CAAA,MAAA,GAAS,qBACxBK,eAAAA,CAAAG,qBAAA,EACE,QAAA,EAAA;AAAA,oBAAAR,cAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,EAAG,EAAA,oBAAA;AAAA,QACH,SAAU,EAAA,iEAAA;AAAA,QACX,QAAA,EAAA;AAAA;AAAA,KAED;AAAA,oBACAA,cAAAA,CAAC,IAAG,EAAA,EAAA,IAAA,EAAK,MAAO,EAAA,SAAA,EAAU,wBACvB,EAAA,QAAA,EAAA,eAAA,CAAgB,GAAI,CAAA,CAAC,OACpB,qBAAAK,gBAAC,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAL,cAAAA,CAAC,QACC,QAAAA,kBAAAA,cAAAA;AAAA,QAACM,sBAAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,CAAI,CAAA,EAAA,OAAA,CAAQ,EAAE,CAAA,CAAA;AAAA,UACpB,SAAWT,EAAAA,sBAAAA;AAAA,YACT,QAAA,CAAS,OAAO,CAAA,GACZ,4BACA,GAAA;AAAA,WACN;AAAA,UAEC,QAAQ,EAAA,OAAA,CAAA;AAAA;AAAA,OAEb,EAAA,CAAA;AAAA,MACC,OAAQ,CAAA,QAAA,CAAS,MAAS,GAAA,CAAA,oBACzBG,cAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,MAAA;AAAA,UACL,SAAU,EAAA,wDAAA;AAAA,UAET,QAAA,EAAA,OAAA,CAAQ,SAAS,GAAI,CAAA,CAAC,+BACrBA,cAAAA,CAAC,QACC,QAAAA,kBAAAA,cAAAA;AAAA,YAACM,sBAAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAM,CAAI,CAAA,EAAA,UAAA,CAAW,EAAE,CAAA,CAAA;AAAA,cACvB,SACE,EAAA,QAAA,CAAS,UAAU,CAAA,GACf,kCACA,GAAA,gDAAA;AAAA,cAGL,QAAW,EAAA,UAAA,CAAA;AAAA;AAAA,WACd,EAAA,EAVO,UAAW,CAAA,EAWpB,CACD;AAAA;AAAA;AACH,KAhCK,EAAA,EAAA,OAAA,CAAQ,EAkCjB,CACD,CACH,EAAA;AAAA,GAAA,EACF,GAEJ,CACF,EAAA,CAAA;AAEJ;ACnHA,SAAS,IAAK,CAAA,EAAE,SAAW,EAAA,GAAG,OAA0D,EAAA;AACtF,EAAA,uBACEN,cAAAA;AAAA,IAAeoB,wBAAA,CAAA,IAAA;AAAA,IAAd;AAAA,MACC,WAAU,EAAA,MAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,qBAAA,EAAuB,SAAS,CAAA;AAAA,MAC7C,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,QAAS,CAAA,EAAE,SAAW,EAAA,GAAG,OAA0D,EAAA;AAC1F,EAAA,uBACEpB,cAAAA;AAAA,IAAeoB,wBAAA,CAAA,IAAA;AAAA,IAAd;AAAA,MACC,WAAU,EAAA,WAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,qGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAY,CAAA,EAAE,SAAW,EAAA,GAAG,OAA6D,EAAA;AAChG,EAAA,uBACEpB,cAAAA;AAAA,IAAeoB,wBAAA,CAAA,OAAA;AAAA,IAAd;AAAA,MACC,WAAU,EAAA,cAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,iqBAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAY,CAAA,EAAE,SAAW,EAAA,GAAG,OAA6D,EAAA;AAChG,EAAA,uBACEpB,cAAAA;AAAA,IAAeoB,wBAAA,CAAA,OAAA;AAAA,IAAd;AAAA,MACC,WAAU,EAAA,cAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,qBAAA,EAAuB,SAAS,CAAA;AAAA,MAC7C,GAAG;AAAA;AAAA,GACN;AAEJ;AC/CO,SAAS,aAAc,CAAA,EAAE,QAAU,EAAA,GAAG,OAA6B,EAAA;AACxE,EAAA,uBAAOpB,cAAAA,CAACqB,wBAAoB,EAAA,EAAA,GAAG,OAAQ,QAAS,EAAA,CAAA;AAClD;ACCO,SAAS,aAAgB,GAAA;AAC9B,EAAA,MAAM,EAAE,aAAA,EAAe,QAAS,EAAA,GAAIC,mBAAS,EAAA;AAC7C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIN,eAAS,KAAK,CAAA;AAE5C,EAAA,MAAM,OAAU,GAAA,iDAAA;AAGhB,EAAAZ,gBAAU,MAAM;AACd,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,GACjB,EAAG,EAAE,CAAA;AAEL,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAA,uBACEJ,cAAC,CAAA,MAAA,EAAA,EAAO,SAAQ,OAAQ,EAAA,IAAA,EAAK,QAAO,SAAU,EAAA,WAAA,EAAY,QAAQ,EAAA,IAAA,EAChE,0BAAAA,cAAC,CAAA,KAAA,CAAM,YAAN,EAAiB,SAAA,EAAW,SAAS,CACxC,EAAA,CAAA;AAAA;AAIJ,EAAA,uBACEK,eAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,SAAA;AAAA,MACR,IAAK,EAAA,MAAA;AAAA,MACL,SAAU,EAAA,0BAAA;AAAA,MACV,SAAS,MAAM,QAAA,CAAS,aAAkB,KAAA,MAAA,GAAS,UAAU,MAAM,CAAA;AAAA,MACnE,YAAY,EAAA,CAAA,UAAA,EAAa,aAAkB,KAAA,MAAA,GAAS,UAAU,MAAM,CAAA,MAAA,CAAA;AAAA,MAEnE,QAAA,EAAA;AAAA,QAAA,aAAA,KAAkB,MACjB,mBAAAL,cAAC,CAAA,KAAA,CAAM,YAAN,EAAiB,SAAA,EAAW,OAAS,EAAA,CAAA,mBAEtCA,cAAC,CAAA,KAAA,CAAM,SAAN,EAAA,EAAgB,WAAW,OAAS,EAAA,CAAA;AAAA,wBAEvCA,eAAC,MAAK,EAAA,EAAA,SAAA,EAAU,WACb,QAAkB,EAAA,aAAA,KAAA,MAAA,GAAS,0BAA0B,sBACxD,EAAA;AAAA;AAAA;AAAA,GACF;AAEJ;ACvCA,IAAM,OAAU,GAAA,CAAC,EAAE,GAAG,OAA0B,KAAA;AAC9C,EAAA,MAAM,EAAE,KAAA,GAAQ,QAAS,EAAA,GAAIsB,mBAAS,EAAA;AAEtC,EAAA,uBACEtB,cAAAA;AAAA,IAACuB,cAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,SAAU,EAAA,eAAA;AAAA,MACV,KACE,EAAA;AAAA,QACE,aAAe,EAAA,gBAAA;AAAA,QACf,eAAiB,EAAA,2BAAA;AAAA,QACjB,iBAAmB,EAAA;AAAA,OACrB;AAAA,MAED,GAAG;AAAA;AAAA,GACN;AAEJ;ACZA,IAAM,aAAaC,mBAA8B,CAAA;AAAA,EAC/C,GAAK,EAAA,IAAA;AAAA,EACL,QAAQ,MAAM;AAAA;AAChB,CAAC,CAAA;AAEM,SAAS,WAAA,CAAY,EAAE,QAAA,EAAqC,EAAA;AACjE,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAIR,eAAS,IAAI,CAAA;AACnC,EAAO,uBAAAhB,cAAC,CAAA,UAAA,CAAW,QAAX,EAAA,EAAoB,OAAO,EAAE,GAAA,EAAK,MAAO,EAAA,EAAI,QAAS,EAAA,CAAA;AAChE;ACVA,IAAM,cAAiBF,GAAAA,0BAAAA;AAAA,EACrB,4iBAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR,OAAS,EAAA;AAAA,QACP,OAAS,EAAA,gBAAA;AAAA,QACT,OAAS,EAAA;AAAA,OACX;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,OAAS,EAAA,kBAAA;AAAA,QACT,EAAI,EAAA,oBAAA;AAAA,QACJ,EAAI,EAAA;AAAA;AACN,KACF;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,OAAS,EAAA,SAAA;AAAA,MACT,IAAM,EAAA;AAAA;AACR;AAEJ;AAEA,SAAS,MAAO,CAAA;AAAA,EACd,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAG;AACL,CAA4F,EAAA;AAC1F,EAAA,uBACEE,cAAAA;AAAA,IAAiByB,0BAAA,CAAA,IAAA;AAAA,IAAhB;AAAA,MACC,WAAU,EAAA,QAAA;AAAA,MACV,SAAA,EAAW,GAAG,cAAe,CAAA,EAAE,SAAS,IAAM,EAAA,SAAA,EAAW,CAAC,CAAA;AAAA,MACzD,GAAG;AAAA;AAAA,GACN;AAEJ;ACjCA,IAAM,qBAA2BC,gBAAmD,CAAA,aAAA,CAAA;AAAA,EAClF,IAAM,EAAA,SAAA;AAAA,EACN,OAAS,EAAA;AACX,CAAC,CAAA;AAED,SAAS,WAAY,CAAA;AAAA,EACnB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAiG,EAAA;AAC/F,EAAA,uBACE1B,cAAAA;AAAA,IAAsB2B,+BAAA,CAAA,IAAA;AAAA,IAArB;AAAA,MACC,WAAU,EAAA,cAAA;AAAA,MACV,cAAc,EAAA,OAAA;AAAA,MACd,WAAW,EAAA,IAAA;AAAA,MACX,SAAW,EAAA,EAAA;AAAA,QACT,wFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA3B,cAAC,CAAA,kBAAA,CAAmB,QAAnB,EAAA,EAA4B,OAAO,EAAE,OAAA,EAAS,IAAK,EAAA,EACjD,QACH,EAAA;AAAA;AAAA,GACF;AAEJ;AAEA,SAAS,eAAgB,CAAA;AAAA,EACvB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAG;AACL,CAAiG,EAAA;AAC/F,EAAM,MAAA,OAAA,GAAgB0B,4BAAW,kBAAkB,CAAA;AAEnD,EAAA,uBACE1B,cAAAA;AAAA,IAAsB2B,+BAAA,CAAA,IAAA;AAAA,IAArB;AAAA,MACC,WAAU,EAAA,mBAAA;AAAA,MACV,cAAA,EAAc,QAAQ,OAAW,IAAA,OAAA;AAAA,MACjC,WAAA,EAAW,QAAQ,IAAQ,IAAA,IAAA;AAAA,MAC3B,SAAW,EAAA,EAAA;AAAA,QACT,cAAe,CAAA;AAAA,UACb,OAAA,EAAS,QAAQ,OAAW,IAAA,OAAA;AAAA,UAC5B,IAAA,EAAM,QAAQ,IAAQ,IAAA;AAAA,SACvB,CAAA;AAAA,QACD,8FAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AC/DO,SAAS,YAAY,IAAwC,EAAA;AAClE,EAAA,IAAI,IAAO,GAAA,EAAA;AAEX,EAAA,KAAA,MAAW,KAAS,IAAA,IAAA,CAAK,QAAY,IAAA,EAAI,EAAA;AACvC,IAAA,IAAI,MAAU,IAAA,KAAA,IAAS,KAAM,CAAA,IAAA,KAAS,MAAQ,EAAA;AAC5C,MAAQ,IAAA,IAAA,KAAA,CAAM,YAAY,OAAW,IAAA,EAAA;AAAA,KACvC,MAAA,IAAW,iBAAiB,WAAa,EAAA;AACvC,MAAA,IAAA,IAAQ,YAAY,KAAK,CAAA;AAAA;AAC3B;AAGF,EAAO,OAAA,IAAA;AACT;AAEO,SAAS,YAAY,IAAwB,EAAA;AAClD,EAAI,IAAA,IAAA,CAAK,QAAa,KAAA,IAAA,CAAK,SAAW,EAAA;AACpC,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,MAAA;AAAA,MACN,UAAY,EAAA;AAAA,QACV,OAAA,EAAS,KAAK,WAAe,IAAA;AAAA;AAC/B,KACF;AAAA;AAGF,EAAI,IAAA,IAAA,CAAK,QAAa,KAAA,IAAA,CAAK,YAAc,EAAA;AACvC,IAAO,OAAA;AAAA,MACL,IAAA,EAAM,IAAK,CAAA,QAAA,CAAS,WAAY,EAAA;AAAA,MAChC,YAAY,EAAC;AAAA,MACb,UAAU,KAAM,CAAA,IAAA,CAAK,KAAK,UAAU,CAAA,CAAE,IAAI,WAAW;AAAA,KACvD;AAAA;AAGF,EAAI,IAAA,IAAA,CAAK,QAAa,KAAA,IAAA,CAAK,YAAc,EAAA;AACvC,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,YAAY;AAAC,KACf;AAAA;AAGF,EAAM,MAAA,IAAI,MAAM,uBAAuB,CAAA;AACzC;AAEO,SAAS,WAAA,CAAYC,SAAU,GAAAC,0BAAA,EAAsB,EAAA;AAC1D,EAAM,MAAA,OAAA,GAAU,QAAS,CAAA,aAAA,CAAc,SAAS,CAAA;AAChD,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAA,OAAO,EAAC;AAAA;AAEV,EAAA,MAAM,WAAW,KAAM,CAAA,IAAA,CAAK,OAAQ,CAAA,gBAAA,CAAiB,oBAAoB,CAAC,CAAA;AAE1E,EAAA,MAAM,SAAwB,EAAC;AAC/B,EAAA,MAAM,QAAuB,EAAC;AAE9B,EAAS,QAAA,CAAA,OAAA,CAAQ,CAAC,EAAO,KAAA;AACvB,IAAM,MAAA,cAAA,GAAiB,YAAY,EAAE,CAAA;AACrC,IAAA,MAAM,KAAQ,GAAA,WAAA,CAAY,cAAc,CAAA,CAAE,IAAK,EAAA;AAC/C,IAAM,MAAA,cAAA,GAAiBD,UAAQ,KAAK,CAAA;AACpC,IAAM,MAAA,EAAA,GAAK,GAAG,EAAM,IAAA,cAAA;AAEpB,IAAA,MAAM,KAAQ,GAAA,QAAA,CAAS,EAAG,CAAA,OAAA,CAAQ,CAAC,CAAC,CAAA;AACpC,IAAA,MAAM,OAAO,EAAE,KAAA,EAAO,IAAI,KAAO,EAAA,QAAA,EAAU,EAAG,EAAA;AAE9C,IAAA,IAAI,CAAC,EAAA,CAAG,EAAI,EAAA,EAAA,CAAG,EAAK,GAAA,EAAA;AAEpB,IAAA,IAAI,UAAU,CAAG,EAAA;AACf,MAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAChB,MAAA,KAAA,CAAM,MAAS,GAAA,CAAA;AACf,MAAA,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,KACV,MAAA;AACL,MAAO,OAAA,KAAA,CAAM,UAAU,KAAM,CAAA,KAAA,CAAM,SAAS,CAAC,CAAA,CAAE,SAAS,KAAO,EAAA;AAC7D,QAAA,KAAA,CAAM,GAAI,EAAA;AAAA;AAEZ,MAAA,IAAI,MAAM,MAAQ,EAAA;AAChB,QAAA,KAAA,CAAM,MAAM,MAAS,GAAA,CAAC,CAAE,CAAA,QAAA,CAAS,KAAK,IAAI,CAAA;AAAA;AAE5C,MAAA,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA;AACjB,GACD,CAAA;AAED,EAAO,OAAA,MAAA;AACT","file":"index.cjs","sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\nexport function truncate(text: string, maxLength: number): string {\n if (text.length <= maxLength) {\n return text\n }\n return text.slice(0, maxLength) + '...'\n}\n\nexport function kebabCase(str: string) {\n return str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_]+/g, '-')\n .toLowerCase()\n}\n\nexport function camelCase(str: string) {\n return str.toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g, (_, chr) => chr.toUpperCase())\n}\n","'use client'\n\nimport * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-primary/10 hover:text-foreground dark:bg-nsw-grey-800/30 dark:border-nsw-grey-800 dark:hover:bg-nsw-grey-800/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-primary/10 hover:text-foreground dark:hover:bg-primary/90',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : 'button'\n\n return (\n <Comp\n data-slot='button'\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import * as React from 'react'\n\nimport { cn } from '../lib/utils'\n\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card'\n className={cn(\n 'border-nsw-grey-200 dark:border-nsw-grey-50 bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card-header'\n className={cn(\n '@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card-title'\n className={cn('leading-none font-semibold', className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card-description'\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card-action'\n className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot='card-content' className={cn('px-6', className)} {...props} />\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card-footer'\n className={cn('flex items-center px-6 [.border-t]:pt-6', className)}\n {...props}\n />\n )\n}\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent }\n","'use client'\n\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible'\n\nfunction Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot='collapsible' {...props} />\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return <CollapsiblePrimitive.CollapsibleTrigger data-slot='collapsible-trigger' {...props} />\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return <CollapsiblePrimitive.CollapsibleContent data-slot='collapsible-content' {...props} />\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","'use client'\n\nimport { useEffect } from 'react'\n\ninterface DynamicFaviconProps {\n lightModeFavicon: string\n darkModeFavicon: string\n}\n\nexport function DynamicFavicon({ lightModeFavicon, darkModeFavicon }: DynamicFaviconProps) {\n useEffect(() => {\n // Function to update favicon based on color scheme\n const updateFavicon = () => {\n const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches\n const favicon = document.querySelector(\"link[rel='icon']\") as HTMLLinkElement\n\n if (favicon) {\n favicon.href = isDarkMode ? darkModeFavicon : lightModeFavicon\n } else {\n // Create favicon link if it doesn't exist\n const newFavicon = document.createElement('link')\n newFavicon.rel = 'icon'\n newFavicon.href = isDarkMode ? darkModeFavicon : lightModeFavicon\n document.head.appendChild(newFavicon)\n }\n }\n\n // Initial update\n updateFavicon()\n\n // Listen for changes in color scheme\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)')\n mediaQuery.addEventListener('change', updateFavicon)\n\n // Clean up\n return () => mediaQuery.removeEventListener('change', updateFavicon)\n }, [lightModeFavicon, darkModeFavicon])\n\n // This component doesn't render anything visible\n return null\n}\n","import { IconProps } from '../types/types'\n\nexport const Social = {\n github: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 0 17 17' {...props}>\n <g clipPath='url(#a)'>\n <path\n fillRule='evenodd'\n d='M8.977.83C4.549.83.97 4.32.97 8.636c0 3.45 2.293 6.371 5.475 7.405.397.078.543-.168.543-.375 0-.18-.013-.8-.013-1.447-2.227.465-2.691-.93-2.691-.93-.358-.905-.888-1.138-.888-1.138-.73-.478.053-.478.053-.478.808.052 1.233.801 1.233.801.715 1.19 1.869.853 2.333.646.066-.504.278-.853.504-1.046-1.777-.181-3.646-.853-3.646-3.852 0-.853.318-1.55.822-2.093-.08-.194-.358-.995.08-2.068 0 0 .676-.207 2.2.801a7.94 7.94 0 0 1 2.002-.258c.676 0 1.365.09 2.001.258 1.525-1.008 2.2-.801 2.2-.801.438 1.073.16 1.874.08 2.068.517.542.822 1.24.822 2.093 0 2.999-1.869 3.658-3.659 3.852.292.245.544.71.544 1.447 0 1.047-.013 1.887-.013 2.145 0 .207.146.453.543.375 3.182-1.034 5.475-3.955 5.475-7.405C16.983 4.319 13.39.83 8.977.83Z'\n clipRule='evenodd'\n ></path>\n </g>\n </svg>\n ),\n linkedin: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 0 17 17' {...props}>\n <g clipPath='url(#a)'>\n <path\n fill='currentColor'\n d='M15.776.83H2.14C1.488.83.96 1.329.96 1.946v13.249c0 .617.528 1.119 1.181 1.119h13.635c.653 0 1.184-.502 1.184-1.116V1.946c0-.617-.531-1.116-1.184-1.116ZM5.706 14.025H3.333V6.633h2.375v7.392ZM4.52 5.626c-.762 0-1.378-.595-1.378-1.33 0-.735.616-1.33 1.378-1.33.76 0 1.375.595 1.375 1.33 0 .732-.615 1.33-1.375 1.33Zm10.075 8.399h-2.371v-3.593c0-.856-.016-1.96-1.235-1.96-1.234 0-1.422.935-1.422 1.9v3.653H7.197V6.633h2.275v1.01h.032c.315-.58 1.09-1.194 2.244-1.194 2.403 0 2.846 1.53 2.846 3.52v4.056Z'\n ></path>\n </g>\n </svg>\n ),\n twitter: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 0 17 17' {...props}>\n <g clipPath='url(#a)'>\n <path\n fill='currentColor'\n d='M13.158 2.058h2.248l-4.913 5.435 5.78 7.395h-4.525l-3.545-4.485-4.056 4.485h-2.25l5.255-5.813-5.545-7.017h4.64l3.205 4.1 3.706-4.1Zm-.79 11.527h1.246L5.57 3.293H4.233l8.135 10.292Z'\n ></path>\n </g>\n </svg>\n ),\n youtube: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 0 17 17' {...props}>\n <g clipPath='url(#a)'>\n <path\n fill='currentColor'\n d='M16.79 5.475s-.156-1.067-.637-1.536c-.61-.617-1.29-.62-1.603-.656-2.238-.158-5.597-.158-5.597-.158h-.006s-3.36 0-5.597.158c-.313.036-.994.039-1.603.656-.481.469-.635 1.536-.635 1.536S.95 6.73.95 7.982v1.174c0 1.252.16 2.507.16 2.507s.156 1.067.634 1.536c.61.617 1.41.596 1.765.662 1.282.118 5.441.154 5.441.154s3.363-.006 5.6-.16c.313-.036.994-.04 1.603-.656.481-.469.638-1.536.638-1.536s.159-1.252.159-2.507V7.982c0-1.252-.16-2.507-.16-2.507ZM7.298 10.58V6.228l4.322 2.184-4.322 2.168Z'\n ></path>\n </g>\n </svg>\n ),\n}\n","'use client'\n\nimport Link from 'next/link'\nimport { Social } from '../components/Social'\n\nfunction SocialLink({\n href,\n icon: Icon,\n children,\n}: {\n href: string\n icon: React.ComponentType<{ className?: string }>\n children: React.ReactNode\n}) {\n return (\n <Link href={href} className='group'>\n <span className='sr-only'>{children}</span>\n <Icon className='h-5 w-5 fill-zinc-700 transition group-hover:fill-zinc-900 dark:group-hover:fill-zinc-500' />\n </Link>\n )\n}\n\nfunction SmallPrint() {\n return (\n <div className='flex flex-col items-center justify-between gap-5 border-t border-zinc-900/5 pt-8 sm:flex-row dark:border-white/5'>\n <p className='text-xs text-zinc-600 dark:text-zinc-400'>\n &copy; Copyright {new Date().getFullYear()}. All rights reserved.\n </p>\n <div className='flex gap-4'>\n <SocialLink href='https://github.com/digitalnsw' icon={Social.github}>\n Follow us on GitHub\n </SocialLink>\n </div>\n </div>\n )\n}\n\nexport function Footer() {\n return (\n <footer className='mx-auto w-full max-w-2xl space-y-10 pb-16 lg:max-w-5xl'>\n <SmallPrint />\n </footer>\n )\n}\n","import { IconProps } from '../types/types'\n\nexport const Icons = {\n account_circle: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M234-276q51-39 114-61.5T480-360q69 0 132 22.5T726-276q35-41 54.5-93T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 59 19.5 111t54.5 93Zm246-164q-59 0-99.5-40.5T340-580q0-59 40.5-99.5T480-720q59 0 99.5 40.5T620-580q0 59-40.5 99.5T480-440Zm0 360q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q53 0 100-15.5t86-44.5q-39-29-86-44.5T480-280q-53 0-100 15.5T294-220q39 29 86 44.5T480-160Zm0-360q26 0 43-17t17-43q0-26-17-43t-43-17q-26 0-43 17t-17 43q0 26 17 43t43 17Zm0-60Zm0 360Z' />\n </svg>\n ),\n attach_file: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M720-330q0 104-73 177T470-80q-104 0-177-73t-73-177v-370q0-75 52.5-127.5T400-880q75 0 127.5 52.5T580-700v350q0 46-32 78t-78 32q-46 0-78-32t-32-78v-330q0-17 11.5-28.5T400-720q17 0 28.5 11.5T440-680v330q0 13 8.5 21.5T470-320q13 0 21.5-8.5T500-350v-350q-1-42-29.5-71T400-800q-42 0-71 29t-29 71v370q-1 71 49 120.5T470-160q70 0 119-49.5T640-330v-350q0-17 11.5-28.5T680-720q17 0 28.5 11.5T720-680v350Z' />\n </svg>\n ),\n cancel: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m480-424 116 116q11 11 28 11t28-11q11-11 11-28t-11-28L536-480l116-116q11-11 11-28t-11-28q-11-11-28-11t-28 11L480-536 364-652q-11-11-28-11t-28 11q-11 11-11 28t11 28l116 116-116 116q-11 11-11 28t11 28q11 11 28 11t28-11l116-116Zm0 344q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z' />\n </svg>\n ),\n check_circle: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m424-408-86-86q-11-11-28-11t-28 11q-11 11-11 28t11 28l114 114q12 12 28 12t28-12l226-226q11-11 11-28t-11-28q-11-11-28-11t-28 11L424-408Zm56 328q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z' />\n </svg>\n ),\n check: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m382-354 339-339q12-12 28-12t28 12q12 12 12 28.5T777-636L410-268q-12 12-28 12t-28-12L182-440q-12-12-11.5-28.5T183-497q12-12 28.5-12t28.5 12l142 143Z' />\n </svg>\n ),\n chevron_down: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-361q-8 0-15-2.5t-13-8.5L268-556q-11-11-11-28t11-28q11-11 28-11t28 11l156 156 156-156q11-11 28-11t28 11q11 11 11 28t-11 28L508-372q-6 6-13 8.5t-15 2.5Z' />\n </svg>\n ),\n chevron_left: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m432-480 156 156q11 11 11 28t-11 28q-11 11-28 11t-28-11L348-452q-6-6-8.5-13t-2.5-15q0-8 2.5-15t8.5-13l184-184q11-11 28-11t28 11q11 11 11 28t-11 28L432-480Z' />\n </svg>\n ),\n chevron_right: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M504-480 348-636q-11-11-11-28t11-28q11-11 28-11t28 11l184 184q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L404-268q-11 11-28 11t-28-11q-11-11-11-28t11-28l156-156Z' />\n </svg>\n ),\n chevron_up: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-528 324-372q-11 11-28 11t-28-11q-11-11-11-28t11-28l184-184q12-12 28-12t28 12l184 184q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-528Z' />\n </svg>\n ),\n close: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-424 284-228q-11 11-28 11t-28-11q-11-11-11-28t11-28l196-196-196-196q-11-11-11-28t11-28q11-11 28-11t28 11l196 196 196-196q11-11 28-11t28 11q11 11 11 28t-11 28L536-480l196 196q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-424Z' />\n </svg>\n ),\n collapse_all: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-264 324-108q-11 11-28 11t-28-11q-11-11-11-28t11-28l155-155q23-23 57-23t57 23l155 155q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-264Zm0-432 156-156q11-11 28-11t28 11q11 11 11 28t-11 28L537-641q-23 23-57 23t-57-23L268-796q-11-11-11-28t11-28q11-11 28-11t28 11l156 156Z' />\n </svg>\n ),\n computer: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M80-120q-17 0-28.5-11.5T40-160q0-17 11.5-28.5T80-200h800q17 0 28.5 11.5T920-160q0 17-11.5 28.5T880-120H80Zm80-120q-33 0-56.5-23.5T80-320v-440q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v440q0 33-23.5 56.5T800-240H160Zm0-80h640v-440H160v440Zm0 0v-440 440Z' />\n </svg>\n ),\n copy: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-520q0-17 11.5-28.5T160-720q17 0 28.5 11.5T200-680v520h400q17 0 28.5 11.5T640-120q0 17-11.5 28.5T600-80H200Zm160-240v-480 480Z' />\n </svg>\n ),\n dark_mode: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-120q-151 0-255.5-104.5T120-480q0-138 90-239.5T440-838q13-2 23 3.5t16 14.5q6 9 6.5 21t-7.5 23q-17 26-25.5 55t-8.5 61q0 90 63 153t153 63q31 0 61.5-9t54.5-25q11-7 22.5-6.5T819-479q10 5 15.5 15t3.5 24q-14 138-117.5 229T480-120Zm0-80q88 0 158-48.5T740-375q-20 5-40 8t-40 3q-123 0-209.5-86.5T364-660q0-20 3-40t8-40q-78 32-126.5 102T200-480q0 116 82 198t198 82Zm-10-270Z' />\n </svg>\n ),\n dock_to_left: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm440-80h120v-560H640v560Zm-80 0v-560H200v560h360Zm80 0h120-120Z' />\n </svg>\n ),\n dock_to_right: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm120-80v-560H200v560h120Zm80 0h360v-560H400v560Zm-80 0H200h120Z' />\n </svg>\n ),\n delete: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M280-120q-33 0-56.5-23.5T200-200v-520q-17 0-28.5-11.5T160-760q0-17 11.5-28.5T200-800h160q0-17 11.5-28.5T400-840h160q17 0 28.5 11.5T600-800h160q17 0 28.5 11.5T800-760q0 17-11.5 28.5T760-720v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM400-280q17 0 28.5-11.5T440-320v-280q0-17-11.5-28.5T400-640q-17 0-28.5 11.5T360-600v280q0 17 11.5 28.5T400-280Zm160 0q17 0 28.5-11.5T600-320v-280q0-17-11.5-28.5T560-640q-17 0-28.5 11.5T520-600v280q0 17 11.5 28.5T560-280ZM280-720v520-520Z' />\n </svg>\n ),\n desktop: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M400-200v-80H160q-33 0-56.5-23.5T80-360v-400q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v400q0 33-23.5 56.5T800-280H560v80h40q17 0 28.5 11.5T640-160q0 17-11.5 28.5T600-120H360q-17 0-28.5-11.5T320-160q0-17 11.5-28.5T360-200h40ZM160-360h640v-400H160v400Zm0 0v-400 400Z' />\n </svg>\n ),\n display_settings: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M300-410v20q0 13 8.5 21.5T330-360q13 0 21.5-8.5T360-390v-100q0-13-8.5-21.5T330-520q-13 0-21.5 8.5T300-490v20h-30q-13 0-21.5 8.5T240-440q0 13 8.5 21.5T270-410h30Zm130 0h260q13 0 21.5-8.5T720-440q0-13-8.5-21.5T690-470H430q-13 0-21.5 8.5T400-440q0 13 8.5 21.5T430-410Zm230-160h30q13 0 21.5-8.5T720-600q0-13-8.5-21.5T690-630h-30v-20q0-13-8.5-21.5T630-680q-13 0-21.5 8.5T600-650v100q0 13 8.5 21.5T630-520q13 0 21.5-8.5T660-550v-20Zm-390 0h260q13 0 21.5-8.5T560-600q0-13-8.5-21.5T530-630H270q-13 0-21.5 8.5T240-600q0 13 8.5 21.5T270-570ZM160-200q-33 0-56.5-23.5T80-280v-480q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v480q0 33-23.5 56.5T800-200H640v40q0 17-11.5 28.5T600-120H360q-17 0-28.5-11.5T320-160v-40H160Zm0-80h640v-480H160v480Zm0 0v-480 480Z' />\n </svg>\n ),\n double_arrow_left: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m313-480 155 156q11 11 11.5 27.5T468-268q-11 11-28 11t-28-11L228-452q-6-6-8.5-13t-2.5-15q0-8 2.5-15t8.5-13l184-184q11-11 27.5-11.5T468-692q11 11 11 28t-11 28L313-480Zm264 0 155 156q11 11 11.5 27.5T732-268q-11 11-28 11t-28-11L492-452q-6-6-8.5-13t-2.5-15q0-8 2.5-15t8.5-13l184-184q11-11 27.5-11.5T732-692q11 11 11 28t-11 28L577-480Z' />\n </svg>\n ),\n double_arrow_right: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M383-480 228-636q-11-11-11.5-27.5T228-692q11-11 28-11t28 11l184 184q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L284-268q-11 11-27.5 11.5T228-268q-11-11-11-28t11-28l155-156Zm264 0L492-636q-11-11-11.5-27.5T492-692q11-11 28-11t28 11l184 184q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L548-268q-11 11-27.5 11.5T492-268q-11-11-11-28t11-28l155-156Z' />\n </svg>\n ),\n download: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-337q-8 0-15-2.5t-13-8.5L308-492q-12-12-11.5-28t11.5-28q12-12 28.5-12.5T365-549l75 75v-286q0-17 11.5-28.5T480-800q17 0 28.5 11.5T520-760v286l75-75q12-12 28.5-11.5T652-548q11 12 11.5 28T652-492L508-348q-6 6-13 8.5t-15 2.5ZM240-160q-33 0-56.5-23.5T160-240v-80q0-17 11.5-28.5T200-360q17 0 28.5 11.5T240-320v80h480v-80q0-17 11.5-28.5T760-360q17 0 28.5 11.5T800-320v80q0 33-23.5 56.5T720-160H240Z' />\n </svg>\n ),\n east: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M727-440H120q-17 0-28.5-11.5T80-480q0-17 11.5-28.5T120-520h607L572-676q-11-11-11.5-27.5T572-732q11-11 28-11t28 11l224 224q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L628-228q-11 11-27.5 11T572-228q-12-12-12-28.5t12-28.5l155-155Z' />\n </svg>\n ),\n error: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-280q17 0 28.5-11.5T520-320q0-17-11.5-28.5T480-360q-17 0-28.5 11.5T440-320q0 17 11.5 28.5T480-280Zm0-160q17 0 28.5-11.5T520-480v-160q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640v160q0 17 11.5 28.5T480-440Zm0 360q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z' />\n </svg>\n ),\n exclamation: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-400q-17 0-28.5-11.5T440-440v-280q0-17 11.5-28.5T480-760q17 0 28.5 11.5T520-720v280q0 17-11.5 28.5T480-400Zm0 200q-17 0-28.5-11.5T440-240q0-17 11.5-28.5T480-280q17 0 28.5 11.5T520-240q0 17-11.5 28.5T480-200Z' />\n </svg>\n ),\n grid_view: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M200-520q-33 0-56.5-23.5T120-600v-160q0-33 23.5-56.5T200-840h160q33 0 56.5 23.5T440-760v160q0 33-23.5 56.5T360-520H200Zm0 400q-33 0-56.5-23.5T120-200v-160q0-33 23.5-56.5T200-440h160q33 0 56.5 23.5T440-360v160q0 33-23.5 56.5T360-120H200Zm400-400q-33 0-56.5-23.5T520-600v-160q0-33 23.5-56.5T600-840h160q33 0 56.5 23.5T840-760v160q0 33-23.5 56.5T760-520H600Zm0 400q-33 0-56.5-23.5T520-200v-160q0-33 23.5-56.5T600-440h160q33 0 56.5 23.5T840-360v160q0 33-23.5 56.5T760-120H600ZM200-600h160v-160H200v160Zm400 0h160v-160H600v160Zm0 400h160v-160H600v160Zm-400 0h160v-160H200v160Zm400-400Zm0 240Zm-240 0Zm0-240Z' />\n </svg>\n ),\n help: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M478-240q21 0 35.5-14.5T528-290q0-21-14.5-35.5T478-340q-21 0-35.5 14.5T428-290q0 21 14.5 35.5T478-240Zm2 160q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Zm4-172q25 0 43.5 16t18.5 40q0 22-13.5 39T502-525q-23 20-40.5 44T444-427q0 14 10.5 23.5T479-394q15 0 25.5-10t13.5-25q4-21 18-37.5t30-31.5q23-22 39.5-48t16.5-58q0-51-41.5-83.5T484-720q-38 0-72.5 16T359-655q-7 12-4.5 25.5T368-609q14 8 29 5t25-17q11-15 27.5-23t34.5-8Z' />\n </svg>\n ),\n info: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-280q17 0 28.5-11.5T520-320v-160q0-17-11.5-28.5T480-520q-17 0-28.5 11.5T440-480v160q0 17 11.5 28.5T480-280Zm0-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z' />\n </svg>\n ),\n light_mode: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-360q50 0 85-35t35-85q0-50-35-85t-85-35q-50 0-85 35t-35 85q0 50 35 85t85 35Zm0 80q-83 0-141.5-58.5T280-480q0-83 58.5-141.5T480-680q83 0 141.5 58.5T680-480q0 83-58.5 141.5T480-280ZM80-440q-17 0-28.5-11.5T40-480q0-17 11.5-28.5T80-520h80q17 0 28.5 11.5T200-480q0 17-11.5 28.5T160-440H80Zm720 0q-17 0-28.5-11.5T760-480q0-17 11.5-28.5T800-520h80q17 0 28.5 11.5T920-480q0 17-11.5 28.5T880-440h-80ZM480-760q-17 0-28.5-11.5T440-800v-80q0-17 11.5-28.5T480-920q17 0 28.5 11.5T520-880v80q0 17-11.5 28.5T480-760Zm0 720q-17 0-28.5-11.5T440-80v-80q0-17 11.5-28.5T480-200q17 0 28.5 11.5T520-160v80q0 17-11.5 28.5T480-40ZM226-678l-43-42q-12-11-11.5-28t11.5-29q12-12 29-12t28 12l42 43q11 12 11 28t-11 28q-11 12-27.5 11.5T226-678Zm494 495-42-43q-11-12-11-28.5t11-27.5q11-12 27.5-11.5T734-282l43 42q12 11 11.5 28T777-183q-12 12-29 12t-28-12Zm-42-495q-12-11-11.5-27.5T678-734l42-43q11-12 28-11.5t29 11.5q12 12 12 29t-12 28l-43 42q-12 11-28 11t-28-11ZM183-183q-12-12-12-29t12-28l43-42q12-11 28.5-11t27.5 11q12 11 11.5 27.5T282-226l-42 43q-11 12-28 11.5T183-183Zm297-297Z' />\n </svg>\n ),\n link: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M280-280q-83 0-141.5-58.5T80-480q0-83 58.5-141.5T280-680h120q17 0 28.5 11.5T440-640q0 17-11.5 28.5T400-600H280q-50 0-85 35t-35 85q0 50 35 85t85 35h120q17 0 28.5 11.5T440-320q0 17-11.5 28.5T400-280H280Zm80-160q-17 0-28.5-11.5T320-480q0-17 11.5-28.5T360-520h240q17 0 28.5 11.5T640-480q0 17-11.5 28.5T600-440H360Zm200 160q-17 0-28.5-11.5T520-320q0-17 11.5-28.5T560-360h120q50 0 85-35t35-85q0-50-35-85t-85-35H560q-17 0-28.5-11.5T520-640q0-17 11.5-28.5T560-680h120q83 0 141.5 58.5T880-480q0 83-58.5 141.5T680-280H560Z' />\n </svg>\n ),\n list: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M320-600q-17 0-28.5-11.5T280-640q0-17 11.5-28.5T320-680h480q17 0 28.5 11.5T840-640q0 17-11.5 28.5T800-600H320Zm0 160q-17 0-28.5-11.5T280-480q0-17 11.5-28.5T320-520h480q17 0 28.5 11.5T840-480q0 17-11.5 28.5T800-440H320Zm0 160q-17 0-28.5-11.5T280-320q0-17 11.5-28.5T320-360h480q17 0 28.5 11.5T840-320q0 17-11.5 28.5T800-280H320ZM160-600q-17 0-28.5-11.5T120-640q0-17 11.5-28.5T160-680q17 0 28.5 11.5T200-640q0 17-11.5 28.5T160-600Zm0 160q-17 0-28.5-11.5T120-480q0-17 11.5-28.5T160-520q17 0 28.5 11.5T200-480q0 17-11.5 28.5T160-440Zm0 160q-17 0-28.5-11.5T120-320q0-17 11.5-28.5T160-360q17 0 28.5 11.5T200-320q0 17-11.5 28.5T160-280Z' />\n </svg>\n ),\n login: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M520-120q-17 0-28.5-11.5T480-160q0-17 11.5-28.5T520-200h240v-560H520q-17 0-28.5-11.5T480-800q0-17 11.5-28.5T520-840h240q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H520Zm-73-320H160q-17 0-28.5-11.5T120-480q0-17 11.5-28.5T160-520h287l-75-75q-11-11-11-27t11-28q11-12 28-12.5t29 11.5l143 143q12 12 12 28t-12 28L429-309q-12 12-28.5 11.5T372-310q-11-12-10.5-28.5T373-366l74-74Z' />\n </svg>\n ),\n logout: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h240q17 0 28.5 11.5T480-800q0 17-11.5 28.5T440-760H200v560h240q17 0 28.5 11.5T480-160q0 17-11.5 28.5T440-120H200Zm487-320H400q-17 0-28.5-11.5T360-480q0-17 11.5-28.5T400-520h287l-75-75q-11-11-11-27t11-28q11-12 28-12.5t29 11.5l143 143q12 12 12 28t-12 28L669-309q-12 12-28.5 11.5T612-310q-11-12-10.5-28.5T613-366l74-74Z' />\n </svg>\n ),\n menu: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M160-240q-17 0-28.5-11.5T120-280q0-17 11.5-28.5T160-320h640q17 0 28.5 11.5T840-280q0 17-11.5 28.5T800-240H160Zm0-200q-17 0-28.5-11.5T120-480q0-17 11.5-28.5T160-520h640q17 0 28.5 11.5T840-480q0 17-11.5 28.5T800-440H160Zm0-200q-17 0-28.5-11.5T120-680q0-17 11.5-28.5T160-720h640q17 0 28.5 11.5T840-680q0 17-11.5 28.5T800-640H160Z' />\n </svg>\n ),\n more_horiz: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400Z' />\n </svg>\n ),\n more_vert: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-160q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm0-240q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm0-240q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Z' />\n </svg>\n ),\n north: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-80q-17 0-28.5-11.5T440-120v-607L284-572q-11 11-27.5 11.5T228-572q-11-11-11-28t11-28l224-224q6-6 13-8.5t15-2.5q8 0 15 2.5t13 8.5l224 224q11 11 11 27.5T732-572q-12 12-28.5 12T675-572L520-727v607q0 17-11.5 28.5T480-80Z' />\n </svg>\n ),\n open_in_new: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h240q17 0 28.5 11.5T480-800q0 17-11.5 28.5T440-760H200v560h560v-240q0-17 11.5-28.5T800-480q17 0 28.5 11.5T840-440v240q0 33-23.5 56.5T760-120H200Zm560-584L416-360q-11 11-28 11t-28-11q-11-11-11-28t11-28l344-344H600q-17 0-28.5-11.5T560-800q0-17 11.5-28.5T600-840h200q17 0 28.5 11.5T840-800v200q0 17-11.5 28.5T800-560q-17 0-28.5-11.5T760-600v-104Z' />\n </svg>\n ),\n palette: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 32.5-156t88-127Q256-817 330-848.5T488-880q80 0 151 27.5t124.5 76q53.5 48.5 85 115T880-518q0 115-70 176.5T640-280h-74q-9 0-12.5 5t-3.5 11q0 12 15 34.5t15 51.5q0 50-27.5 74T480-80Zm0-400Zm-220 40q26 0 43-17t17-43q0-26-17-43t-43-17q-26 0-43 17t-17 43q0 26 17 43t43 17Zm120-160q26 0 43-17t17-43q0-26-17-43t-43-17q-26 0-43 17t-17 43q0 26 17 43t43 17Zm200 0q26 0 43-17t17-43q0-26-17-43t-43-17q-26 0-43 17t-17 43q0 26 17 43t43 17Zm120 160q26 0 43-17t17-43q0-26-17-43t-43-17q-26 0-43 17t-17 43q0 26 17 43t43 17ZM480-160q9 0 14.5-5t5.5-13q0-14-15-33t-15-57q0-42 29-67t71-25h70q66 0 113-38.5T800-518q0-121-92.5-201.5T488-800q-136 0-232 93t-96 227q0 133 93.5 226.5T480-160Z' />\n </svg>\n ),\n print: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M320-120q-33 0-56.5-23.5T240-200v-80h-80q-33 0-56.5-23.5T80-360v-160q0-51 35-85.5t85-34.5h560q51 0 85.5 34.5T880-520v160q0 33-23.5 56.5T800-280h-80v80q0 33-23.5 56.5T640-120H320ZM160-360h80q0-33 23.5-56.5T320-440h320q33 0 56.5 23.5T720-360h80v-160q0-17-11.5-28.5T760-560H200q-17 0-28.5 11.5T160-520v160Zm480-280v-120H320v120h-80v-120q0-33 23.5-56.5T320-840h320q33 0 56.5 23.5T720-760v120h-80Zm80 180q17 0 28.5-11.5T760-500q0-17-11.5-28.5T720-540q-17 0-28.5 11.5T680-500q0 17 11.5 28.5T720-460Zm-80 260v-160H320v160h320ZM160-560h640-640Z' />\n </svg>\n ),\n progress_activity: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-155.5t86-127Q252-817 325-848.5T480-880q17 0 28.5 11.5T520-840q0 17-11.5 28.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160q133 0 226.5-93.5T800-480q0-17 11.5-28.5T840-520q17 0 28.5 11.5T880-480q0 82-31.5 155t-86 127.5q-54.5 54.5-127 86T480-80Z' />\n </svg>\n ),\n remove: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M240-440q-17 0-28.5-11.5T200-480q0-17 11.5-28.5T240-520h480q17 0 28.5 11.5T760-480q0 17-11.5 28.5T720-440H240Z' />\n </svg>\n ),\n search: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M380-320q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l224 224q11 11 11 28t-11 28q-11 11-28 11t-28-11L532-372q-30 24-69 38t-83 14Zm0-80q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z' />\n </svg>\n ),\n settings_brightness: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m420-320 46 46q6 6 14 6t14-6l46-46h80q8 0 14-6t6-14v-80l46-46q6-6 6-14t-6-14l-46-46v-80q0-8-6-14t-14-6h-80l-46-46q-6-6-14-6t-14 6l-46 46h-80q-8 0-14 6t-6 14v80l-46 46q-6 6-6 14t6 14l46 46v80q0 8 6 14t14 6h80Zm60-40v-240q50 0 85 35t35 85q0 50-35 85t-85 35ZM160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm0-80h640v-480H160v480Zm0 0v-480 480Z' />\n </svg>\n ),\n share: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M680-80q-50 0-85-35t-35-85q0-6 3-28L282-392q-16 15-37 23.5t-45 8.5q-50 0-85-35t-35-85q0-50 35-85t85-35q24 0 45 8.5t37 23.5l281-164q-2-7-2.5-13.5T560-760q0-50 35-85t85-35q50 0 85 35t35 85q0 50-35 85t-85 35q-24 0-45-8.5T598-672L317-508q2 7 2.5 13.5t.5 14.5q0 8-.5 14.5T317-452l281 164q16-15 37-23.5t45-8.5q50 0 85 35t35 85q0 50-35 85t-85 35Zm0-80q17 0 28.5-11.5T720-200q0-17-11.5-28.5T680-240q-17 0-28.5 11.5T640-200q0 17 11.5 28.5T680-160ZM200-440q17 0 28.5-11.5T240-480q0-17-11.5-28.5T200-520q-17 0-28.5 11.5T160-480q0 17 11.5 28.5T200-440Zm480-280q17 0 28.5-11.5T720-760q0-17-11.5-28.5T680-800q-17 0-28.5 11.5T640-760q0 17 11.5 28.5T680-720Zm0 520ZM200-480Zm480-280Z' />\n </svg>\n ),\n side_navigation: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm280-80h280v-560H480v560Z' />\n </svg>\n ),\n south: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-97q-8 0-15-2.5t-13-8.5L228-332q-11-11-11-28t11-28q12-12 28.5-11.5T284-388l156 155v-607q0-17 11.5-28.5T480-880q17 0 28.5 11.5T520-840v607l155-155q12-12 28.5-12t28.5 12q11 12 11 28.5T732-332L508-108q-6 6-13 8.5T480-97Z' />\n </svg>\n ),\n unfold_less: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m480-284-96 96q-11 11-28 11t-28-11q-11-11-11-28t11-28l124-124q6-6 13-8.5t15-2.5q8 0 15 2.5t13 8.5l124 124q11 11 11 28t-11 28q-11 11-28 11t-28-11l-96-96Zm0-392 96-96q11-11 28-11t28 11q11 11 11 28t-11 28L508-592q-6 6-13 8.5t-15 2.5q-8 0-15-2.5t-13-8.5L328-716q-11-11-11-28t11-28q11-11 28-11t28 11l96 96Z' />\n </svg>\n ),\n unfold_more: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m480-236 93-93q12-12 29-12t29 12q12 12 12 29t-12 29L508-148q-6 6-13 8.5t-15 2.5q-8 0-15-2.5t-13-8.5L329-271q-12-12-12-29t12-29q12-12 29-12t29 12l93 93Zm0-484-93 93q-12 12-29 12t-29-12q-12-12-12-29t12-29l123-123q6-6 13-8.5t15-2.5q8 0 15 2.5t13 8.5l123 123q12 12 12 29t-12 29q-12 12-29 12t-29-12l-93-93Z' />\n </svg>\n ),\n upload: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M240-160q-33 0-56.5-23.5T160-240v-80q0-17 11.5-28.5T200-360q17 0 28.5 11.5T240-320v80h480v-80q0-17 11.5-28.5T760-360q17 0 28.5 11.5T800-320v80q0 33-23.5 56.5T720-160H240Zm200-486-75 75q-12 12-28.5 11.5T308-572q-11-12-11.5-28t11.5-28l144-144q6-6 13-8.5t15-2.5q8 0 15 2.5t13 8.5l144 144q12 12 11.5 28T652-572q-12 12-28.5 12.5T595-571l-75-75v286q0 17-11.5 28.5T480-320q-17 0-28.5-11.5T440-360v-286Z' />\n </svg>\n ),\n west: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M233-440h607q17 0 28.5-11.5T880-480q0-17-11.5-28.5T840-520H233l155-156q11-11 11.5-27.5T388-732q-11-11-28-11t-28 11L108-508q-6 6-8.5 13T97-480q0 8 2.5 15t8.5 13l224 224q11 11 27.5 11t28.5-11q12-12 12-28.5T388-285L233-440Z' />\n </svg>\n ),\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\n\nimport { cn } from '../lib/utils'\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot='label'\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","export function Logo(props: React.ComponentPropsWithoutRef<'svg'>) {\n return (\n <>\n <span className='sr-only'>NSW Government</span>\n <svg viewBox='0 0 259 280' aria-hidden='true' {...props}>\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M24.208 270.207h-5.045v-4.277l11.15.054v13.676H26.08v-2.491c-.266.278-.553.556-.86.833-.673.585-1.49 1.07-2.433 1.434-.96.373-2.143.564-3.513.564-2.33 0-4.385-.539-6.109-1.6-1.727-1.065-3.073-2.594-4.007-4.538-.926-1.927-1.395-4.231-1.395-6.85 0-2.657.494-4.994 1.47-6.946.971-1.96 2.363-3.498 4.132-4.571 1.768-1.065 3.849-1.604 6.183-1.604 1.515 0 2.915.245 4.156.725 1.255.485 2.36 1.157 3.273 1.985a9.61 9.61 0 0 1 2.192 2.852 8.196 8.196 0 0 1 .872 3.319l.021.435h-6.038l-.062-.339a5.22 5.22 0 0 0-.814-1.981 4.562 4.562 0 0 0-1.537-1.43c-.614-.352-1.345-.531-2.175-.531-1.005 0-1.931.261-2.741.775-.806.51-1.458 1.351-1.935 2.495-.486 1.169-.731 2.74-.731 4.679 0 1.579.162 2.897.482 3.925.311 1.011.739 1.819 1.266 2.403.523.581 1.117.991 1.773 1.219a6.036 6.036 0 0 0 2.089.369c.669 0 1.27-.112 1.79-.328.523-.224.98-.514 1.354-.866.377-.356.676-.746.884-1.152.216-.41.349-.816.399-1.21l.14-1.028Zm20.878-16.312c2.354 0 4.435.534 6.179 1.587 1.752 1.061 3.13 2.59 4.086 4.546.947 1.935 1.428 4.281 1.428 6.967 0 2.648-.473 4.969-1.412 6.9-.946 1.948-2.317 3.469-4.073 4.521-1.744 1.053-3.837 1.583-6.212 1.583-2.396 0-4.502-.534-6.254-1.583-1.753-1.044-3.135-2.557-4.099-4.505-.947-1.927-1.428-4.252-1.428-6.912 0-2.673.486-5.015 1.449-6.954.968-1.956 2.355-3.486 4.12-4.551 1.764-1.061 3.853-1.599 6.216-1.599Zm0 21.185c1.117 0 2.093-.265 2.898-.787.802-.523 1.433-1.372 1.881-2.516.453-1.185.686-2.772.686-4.712 0-1.993-.237-3.618-.698-4.832-.444-1.181-1.08-2.056-1.885-2.603-.814-.543-1.782-.82-2.878-.82-1.1 0-2.072.277-2.886.82-.81.543-1.453 1.422-1.906 2.611-.47 1.223-.706 2.843-.706 4.82 0 1.944.237 3.531.702 4.712.452 1.148 1.092 1.997 1.902 2.515.81.527 1.781.792 2.89.792Zm23.764-2.93-6.162-17.829H57.09l8.654 25.251h6.195l8.73-25.251h-5.607L68.85 272.15Zm30.312-2.827H88.863v5.206l12.043.016v5.027H83.103v-25.251h17.632l-.016 4.99H88.892v5.089h10.27v4.923Zm22.482-1.529c.685-.613 1.246-1.401 1.678-2.341.419-.933.635-2.081.635-3.419 0-1.497-.311-2.835-.93-3.983-.619-1.169-1.599-2.093-2.919-2.756-1.3-.647-2.973-.974-4.975-.974h-10.738v25.243h5.759v-9.404h4.24l3.991 9.404h6.046l-4.651-10.456c.673-.357 1.3-.8 1.864-1.314Zm-3.513-5.64c0 .999-.336 1.79-1.025 2.428-.69.63-1.649.949-2.857.949h-4.095v-6.606h4.456c1.038 0 1.873.286 2.545.875.657.576.976 1.347.976 2.354Zm15.159-7.833 10.527 15.23v-15.23h5.776v25.251h-5.086l-10.98-15.86v15.86h-5.759v-25.251h5.522Zm33.949 16.461-5.29-16.461h-7.894v25.251h5.809v-16.266l5.124 16.266h4.485l5.162-16.357v16.357h5.826v-25.251h-7.878l-5.344 16.461Zm33.727-1.459h-10.298v5.206l12.046.016v5.027h-17.806v-25.251h17.636l-.021 4.99h-11.818v5.089h10.261v4.923Zm21.494.228-10.523-15.23h-5.527v25.251h5.756v-15.86l10.979 15.86h5.087v-25.251h-5.772v15.23Zm15.586-10.004h-7.388v-5.226h20.402v5.226h-7.217v20.025h-5.797v-20.025Z'\n className='fill-nsw-blue-800 dark:fill-white'\n />\n\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M146.699 209.236c-1.482-2.395-3.717-4.571-6.64-6.465-2.919-1.894-6.897-3.34-11.81-4.297l-13.678-2.814c-4.132-.891-6.981-2.043-8.468-3.419-1.449-1.343-2.184-3.129-2.184-5.309 0-1.388.316-2.652.943-3.759.623-1.111 1.528-2.093 2.687-2.922 1.166-.828 2.616-1.483 4.306-1.943 1.711-.469 3.633-.705 5.714-.705 2.74 0 5.211.361 7.346 1.078 2.109.713 3.857 1.881 5.194 3.481 1.338 1.6 2.16 3.775 2.442 6.465l.038.373h16.971l-.008-.427c-.075-4.575-1.371-8.773-3.85-12.474-2.483-3.705-6.141-6.681-10.879-8.852-4.726-2.164-10.623-3.262-17.528-3.262-5.801 0-11.117 1.011-15.805 3.009-4.7 2.002-8.475 4.89-11.212 8.587-2.749 3.717-4.12 8.164-4.078 13.224.112 6.175 1.99 11.186 5.577 14.903 3.576 3.697 8.476 6.158 14.567 7.306l13.795 2.81c2.529.502 4.825 1.16 6.823 1.96 1.96.784 3.525 1.803 4.651 3.03 1.1 1.197 1.657 2.772 1.657 4.67 0 2.114-.694 3.9-2.06 5.301-1.4 1.434-3.301 2.515-5.643 3.224-2.388.721-5.058 1.086-7.936 1.086-2.807 0-5.394-.435-7.686-1.297-2.28-.85-4.194-2.093-5.689-3.693-1.491-1.591-2.513-3.585-3.04-5.918l-.075-.327H83.846l.045.46c.407 4.045 1.666 7.629 3.738 10.659 2.068 3.009 4.717 5.545 7.873 7.551 3.148 1.993 6.677 3.514 10.494 4.513a46.33 46.33 0 0 0 11.693 1.5c6.466 0 12.2-1.019 17.046-3.034 4.867-2.022 8.717-4.807 11.449-8.276 2.753-3.493 4.148-7.476 4.148-11.848 0-2.064-.232-4.36-.697-6.822-.478-2.482-1.466-4.948-2.936-7.327ZM25.937 191.763l36.916 53.312H77.87v-79.724H61.072v51.282L25.754 165.53l-.125-.179H9.19v79.724h16.748v-53.312Zm196.637 24.577 14.388-50.987h16.457l-23.587 79.724h-13.367l-14.554-50.469-14.659 50.469h-13.147l-23.533-79.724h16.511l14.384 50.979 14.389-50.979h12.167l14.551 50.987Z'\n className='fill-nsw-blue-800 dark:fill-white'\n />\n\n <path\n d='M122.291 145.572c-19.75-2.424-38.934 3.904-72.69-5.263-3.447-.937-4.718 2.694-2.854 5.736 9.07 14.803 54.881 3.203 75.635 1.065.906-.095.814-1.426-.091-1.538ZM208.735 140.309c-33.756 9.167-52.941 2.839-72.691 5.263-.905.112-1 1.447-.091 1.538 20.759 2.138 66.566 13.738 75.635-1.065 1.864-3.042.594-6.673-2.853-5.736ZM59.882 119.132c-6.864-10.058-12.474-21.31-16.818-33.69-13.101 3.826-26.51 9.346-40.16 16.57a5.388 5.388 0 0 0-2.902 4.67 5.38 5.38 0 0 0 2.653 4.812c26.431 15.802 52.273 24.841 76.93 26.933-7.34-4.475-14.072-11.044-19.703-19.295ZM23.059 85.513a201.529 201.529 0 0 1 17.976-6.233c-2.126-6.896-3.87-14.12-5.249-21.658-6.827-.85-13.89-1.4-21.199-1.641-.062 0-.128-.004-.19-.004a5.391 5.391 0 0 0-4.647 2.602 5.383 5.383 0 0 0-.12 5.483c4.243 7.659 8.724 14.808 13.429 21.45ZM88.005 135.572c4.099 1.807 8.293 2.818 12.358 3.029-9.953-7.12-17.773-19.192-22.278-34.58-5.805-19.81-7.745-41.666-5.83-65.247-7.832-4.936-16.32-9.557-25.46-13.85a5.428 5.428 0 0 0-5.402.43 5.396 5.396 0 0 0-2.388 4.841c2.126 34.215 10.95 62.915 26.223 85.298 6.404 9.391 14.281 16.332 22.777 20.079ZM107.488 23.577A253.323 253.323 0 0 0 92.235 6.735c-1.063-1.078-2.433-1.65-3.85-1.65-.506 0-1.017.075-1.523.224-1.923.568-3.314 2.106-3.733 4.115-1.072 5.164-3.11 15.69-4.012 26.101 7.014 4.613 13.492 9.49 19.426 14.621 2.3-8.757 5.29-17.63 8.945-26.569ZM255.42 102.007c-13.65-7.223-27.058-12.744-40.16-16.569-4.343 12.38-9.953 23.631-16.818 33.689-5.63 8.255-12.362 14.82-19.708 19.296 24.658-2.093 50.5-11.132 76.931-26.934 1.715-1.024 2.707-2.822 2.653-4.811-.045-1.99-1.133-3.734-2.898-4.671ZM235.273 85.513c4.705-6.643 9.186-13.796 13.43-21.455.963-1.74.922-3.788-.121-5.483a5.4 5.4 0 0 0-4.837-2.598c-7.309.24-14.377.796-21.199 1.641-1.375 7.539-3.123 14.762-5.249 21.658a203.803 203.803 0 0 1 17.976 6.237ZM180.247 104.025c-4.505 15.384-12.329 27.46-22.278 34.58 4.065-.211 8.263-1.227 12.358-3.034 8.496-3.746 16.373-10.688 22.777-20.075 15.273-22.383 24.097-51.082 26.223-85.297a5.394 5.394 0 0 0-2.388-4.84 5.428 5.428 0 0 0-5.402-.432c-9.14 4.29-17.628 8.91-25.46 13.85 1.915 23.582-.029 45.434-5.83 65.248ZM179.214 35.52c-.901-10.406-2.94-20.932-4.011-26.1-.416-2.01-1.811-3.547-3.733-4.115a5.39 5.39 0 0 0-1.524-.224c-1.416 0-2.787.572-3.85 1.65-5.485 5.549-10.568 11.164-15.252 16.842 3.654 8.939 6.644 17.812 8.949 26.565 5.934-5.127 12.407-10.005 19.421-14.617ZM129.144 87.229c6.64-13.092 17.246-24.829 25.21-32.243-4.372-17.779-11.104-34.55-20.397-52.097C132.998 1.078 131.195 0 129.148 0s-3.845 1.082-4.808 2.889c-9.389 17.604-16.237 35.122-20.377 52.093 8.313 7.688 19.28 20.224 25.181 32.247Z'\n className='fill-nsw-red-600 dark:fill-white'\n />\n\n <path\n d='M153.541 133.686c6.885-4.833 13.77-13.254 18.139-24.97 8.458-22.681 9.334-47.945 8.122-65.823-15.331 10.215-39.665 31.55-47.975 54.36-3.911 10.734-5.734 25.355-2.72 33.511 1.259 3.411 3.401 5.997 6.345 7.227 4.46 1.865 11.312.456 18.089-4.305ZM125.713 95.261c-2.027-4.724-4.261-9.18-7.728-14.186-9.809-14.16-23.026-26.933-39.475-38.185-.17 2.652-2.57 31.297 5.851 59.304 6.408 21.302 17.354 29.98 23.354 33.333 6.038 3.369 11.561 4.165 18.039 2.557-6.565-8.935-5.747-27.27-.041-42.823Z'\n className='fill-nsw-red-600 dark:fill-white'\n />\n </svg>\n </>\n )\n}\n","'use client'\nexport function Masthead() {\n return (\n <div className='bg-primary h-[var(--masthead-height)] w-full'>\n <div className='mx-auto flex w-full items-center justify-between px-4 py-2 sm:px-6 lg:px-8'>\n <div className='flex items-center gap-x-12'>\n <p className='text-xs text-white'>A NSW Government website</p>\n </div>\n </div>\n </div>\n )\n}\n","'use client'\n\nimport React from 'react'\nimport Link from 'next/link'\nimport { usePathname } from 'next/navigation'\nimport clsx from 'clsx'\n\nimport { NavigationSection } from '../types/types.js'\n\nexport function Navigation({\n className,\n onLinkClick,\n navigation,\n}: {\n className?: string\n onLinkClick?: React.MouseEventHandler<HTMLAnchorElement>\n navigation: NavigationSection[]\n}) {\n const pathname = usePathname()\n\n return (\n <nav className={clsx('text-base lg:text-sm', className)}>\n <ul role='list' className='flex flex-col gap-9'>\n {navigation.map((section) => (\n <li key={section.title}>\n <h2 className='font-display text-foreground font-medium dark:text-white'>\n {section.title}\n </h2>\n <ul\n role='list'\n className='border-nsw-grey-400 dark:border-nsw-grey-200/15 mt-2 flex flex-col gap-2 border-l lg:mt-4'\n >\n {section.links.map((link) => (\n <li key={link.href} className='-ml-px flex flex-col items-start gap-2'>\n <Link\n href={link.href}\n onClick={onLinkClick}\n className={clsx(\n 'text-foreground inline-block border-l pl-5 text-base/8 sm:pl-4 sm:text-sm/6',\n 'hover:border-nsw-grey-950 hover:text-nsw-gray-950 hover:font-semibold',\n 'dark:text-nsw-grey-400',\n 'dark:hover:border-nsw-grey-400 dark:hover:text-white',\n link.href === pathname &&\n 'border-primary text-primary border-l font-semibold dark:border-white',\n )}\n >\n {link.title}\n </Link>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </nav>\n )\n}\n","'use client'\n\nimport Link from 'next/link'\nimport { usePathname } from 'next/navigation'\nimport clsx from 'clsx'\n\nimport { NavigationSection } from '../types/types'\n\nfunction ArrowIcon(props: React.ComponentPropsWithoutRef<'svg'>) {\n return (\n <svg viewBox='0 0 16 16' aria-hidden='true' {...props}>\n <path d='m9.182 13.423-1.17-1.16 3.505-3.505H3V7.065h8.517l-3.506-3.5L9.181 2.4l5.512 5.511-5.511 5.512Z' />\n </svg>\n )\n}\n\nfunction PageLink({\n title,\n href,\n dir = 'next',\n ...props\n}: Omit<React.ComponentPropsWithoutRef<'div'>, 'dir' | 'title'> & {\n title: string\n href: string\n dir?: 'previous' | 'next'\n}) {\n return (\n <div {...props}>\n <dt className='font-display text-sm font-medium text-slate-900 dark:text-white'>\n {dir === 'next' ? 'Next' : 'Previous'}\n </dt>\n <dd className='mt-1'>\n <Link\n href={href}\n className={clsx(\n 'flex items-center gap-x-1 text-base font-semibold text-slate-500 hover:text-slate-600 dark:text-slate-400 dark:hover:text-slate-300',\n dir === 'previous' && 'flex-row-reverse',\n )}\n >\n {title}\n <ArrowIcon\n className={clsx('h-4 w-4 flex-none fill-current', dir === 'previous' && '-scale-x-100')}\n />\n </Link>\n </dd>\n </div>\n )\n}\n\ninterface PrevNextLinksProps {\n navigation: NavigationSection[]\n}\n\nexport function PrevNextLinks({ navigation }: PrevNextLinksProps) {\n const pathname = usePathname()\n const allLinks = navigation.flatMap((section) => section.links)\n const linkIndex = allLinks.findIndex((link) => link.href === pathname)\n const previousPage = linkIndex > -1 ? allLinks[linkIndex - 1] : null\n const nextPage = linkIndex > -1 ? allLinks[linkIndex + 1] : null\n\n if (!nextPage && !previousPage) {\n return null\n }\n\n return (\n <dl className='mt-12 flex border-t border-slate-200 pt-6 dark:border-slate-800'>\n {previousPage && <PageLink dir='previous' {...previousPage} />}\n {nextPage && <PageLink className='ml-auto text-right' {...nextPage} />}\n </dl>\n )\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group'\nimport { CircleIcon } from 'lucide-react'\n\nimport { cn } from '../lib/utils'\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot='radio-group'\n className={cn('grid gap-3', className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot='radio-group-item'\n className={cn(\n 'border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot='radio-group-indicator'\n className='relative flex items-center justify-center'\n >\n <CircleIcon className='fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2' />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","'use client'\n\nimport * as React from 'react'\nimport * as SheetPrimitive from '@radix-ui/react-dialog'\nimport { XIcon } from 'lucide-react'\n\nimport { cn } from '../lib/utils'\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot='sheet' {...props} />\n}\n\nfunction SheetTrigger({ ...props }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot='sheet-trigger' {...props} />\n}\n\nfunction SheetClose({ ...props }: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot='sheet-close' {...props} />\n}\n\nfunction SheetPortal({ ...props }: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot='sheet-portal' {...props} />\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot='sheet-overlay'\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = 'right',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left'\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot='sheet-content'\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n side === 'right' &&\n 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',\n side === 'left' &&\n 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm',\n side === 'top' &&\n 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b',\n side === 'bottom' &&\n 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t',\n className,\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className='ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none'>\n <XIcon className='size-4' />\n <span className='sr-only'>Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='sheet-header'\n className={cn('flex flex-col gap-1.5 p-4', className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='sheet-footer'\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot='sheet-title'\n className={cn('text-foreground font-semibold', className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot='sheet-description'\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","'use client'\n\nimport * as React from 'react'\nimport clsx from 'clsx'\nimport { usePathname } from 'next/navigation'\nimport NextLink from 'next/link'\n\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../components/Collapsible'\nimport { Icons } from '../components/Icons'\nimport { Link, NavigationSection } from '../types/types'\n\ntype SidebarLinkProps = {\n link: Link\n pathname: string\n onLinkClick?: React.MouseEventHandler<HTMLAnchorElement>\n depth: number\n}\n\nexport function SidebarNavigation({\n className,\n onLinkClick,\n navigation,\n}: {\n className?: string\n onLinkClick?: React.MouseEventHandler<HTMLAnchorElement>\n navigation: NavigationSection[]\n}) {\n const pathname = usePathname()\n\n return (\n <nav className={clsx('text-base lg:text-sm', className)}>\n <ul role='list' className='flex flex-col gap-9'>\n {navigation.map((section, sectionIndex) => (\n <li key={sectionIndex}>\n <h2 className='font-display text-foreground font-medium dark:text-white'>\n {section.title}\n </h2>\n <ul\n role='list'\n className='border-nsw-grey-400 dark:border-nsw-grey-200/15 mt-2 flex flex-col gap-2 border-l lg:mt-4'\n >\n {section.links.map((link) => (\n <SidebarLink\n key={link.href}\n link={link}\n pathname={pathname}\n onLinkClick={onLinkClick || (() => {})}\n depth={1}\n />\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </nav>\n )\n}\n\nfunction SidebarLink({ link, pathname, onLinkClick, depth }: SidebarLinkProps) {\n const hasChildren = Array.isArray(link.links) && link.links.length > 0\n const isActive = pathname === link.href\n\n const baseLinkClasses = clsx(\n 'border-l pl-4 pr-2 text-base/8 sm:text-sm/6 w-full text-left py-1 rounded-r-md cursor-pointer',\n 'hover:border-nsw-grey-950 hover:text-nsw-gray-950 hover:font-semibold hover:bg-primary/10',\n 'dark:text-nsw-grey-400 dark:hover:border-nsw-grey-400 dark:hover:text-white',\n isActive &&\n 'border-primary text-primary font-bold dark:border-white bg-nsw-sky-100 dark:bg-nsw-sky-900/20',\n )\n\n return (\n <li className='-ml-px flex flex-col items-start gap-1'>\n {hasChildren ? (\n <Collapsible className='w-full' defaultOpen={isActive}>\n <CollapsibleTrigger asChild>\n <button\n className={clsx(baseLinkClasses, 'group flex items-center justify-between gap-1')}\n >\n <span>{link.title}</span>\n <Icons.chevron_right\n className={clsx(\n 'ml-2 size-5 transition-transform duration-200',\n 'group-data-[state=open]:rotate-90',\n )}\n />\n </button>\n </CollapsibleTrigger>\n <CollapsibleContent>\n <ul\n className={clsx(\n 'border-nsw-grey-400 dark:border-nsw-grey-200/15 mt-2 ml-5 flex flex-col gap-1 border-l pl-0',\n )}\n >\n {link.links &&\n link.links.map((childLink: Link) => (\n <SidebarLink\n key={childLink.href}\n link={childLink}\n pathname={pathname}\n onLinkClick={onLinkClick}\n depth={depth + 1}\n />\n ))}\n </ul>\n </CollapsibleContent>\n </Collapsible>\n ) : (\n <NextLink href={link.href} onClick={onLinkClick} className={baseLinkClasses}>\n {link.title}\n </NextLink>\n )}\n </li>\n )\n}\n","'use client'\n\nimport { useCallback, useEffect, useState } from 'react'\nimport Link from 'next/link'\nimport clsx from 'clsx'\n\ntype TableOfContentsItem = {\n id: string\n children: TableOfContentsItem[]\n title: string\n}\n\ntype TableOfContentsProps = {\n tableOfContents: TableOfContentsItem[]\n}\n\nexport function TableOfContents({ tableOfContents }: TableOfContentsProps) {\n const [currentSection, setCurrentSection] = useState(tableOfContents[0]?.id)\n\n const getHeadings = useCallback((tableOfContents: TableOfContentsItem[]) => {\n return tableOfContents\n .flatMap((node) => [node.id, ...node.children.map((child) => child.id)])\n .map((id) => {\n const el = document.getElementById(id)\n if (!el) return null\n\n const style = window.getComputedStyle(el)\n const scrollMt = parseFloat(style.scrollMarginTop)\n\n const top = window.scrollY + el.getBoundingClientRect().top - scrollMt\n return { id, top }\n })\n .filter((x): x is { id: string; top: number } => x !== null)\n }, [])\n\n useEffect(() => {\n if (tableOfContents.length === 0) return\n const headings = getHeadings(tableOfContents)\n function onScroll() {\n const top = window.scrollY\n let current = headings[0].id\n for (const heading of headings) {\n if (top >= heading.top - 10) {\n current = heading.id\n } else {\n break\n }\n }\n setCurrentSection(current)\n }\n window.addEventListener('scroll', onScroll, { passive: true })\n onScroll()\n return () => {\n window.removeEventListener('scroll', onScroll)\n }\n }, [getHeadings, tableOfContents])\n\n function isActive(section: TableOfContentsItem) {\n if (section.id === currentSection) {\n return true\n }\n if (!section.children) {\n return false\n }\n return section.children.findIndex(isActive) > -1\n }\n\n return (\n <div className='hidden xl:sticky xl:top-[4.75rem] xl:-mr-6 xl:block xl:h-[calc(100vh-4.75rem)] xl:flex-none xl:overflow-y-auto xl:py-16 xl:pr-6'>\n <nav aria-labelledby='on-this-page-title' className='w-56'>\n {tableOfContents.length > 0 && (\n <>\n <h2\n id='on-this-page-title'\n className='font-display text-sm font-medium text-slate-900 dark:text-white'\n >\n On this page\n </h2>\n <ol role='list' className='mt-4 space-y-3 text-sm'>\n {tableOfContents.map((section) => (\n <li key={section.id}>\n <h3>\n <Link\n href={`#${section.id}`}\n className={clsx(\n isActive(section)\n ? 'text-primary font-semibold'\n : 'font-normal text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-300',\n )}\n >\n {section.title}\n </Link>\n </h3>\n {section.children.length > 0 && (\n <ol\n role='list'\n className='mt-2 space-y-3 pl-5 text-slate-500 dark:text-slate-400'\n >\n {section.children.map((subSection) => (\n <li key={subSection.id}>\n <Link\n href={`#${subSection.id}`}\n className={\n isActive(subSection)\n ? 'text-primary-light font-semibold'\n : 'hover:text-slate-600 dark:hover:text-slate-300'\n }\n >\n {subSection.title}\n </Link>\n </li>\n ))}\n </ol>\n )}\n </li>\n ))}\n </ol>\n </>\n )}\n </nav>\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as TabsPrimitive from '@radix-ui/react-tabs'\n\nimport { cn } from '../lib/utils'\n\nfunction Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot='tabs'\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n )\n}\n\nfunction TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot='tabs-list'\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot='tabs-trigger'\n className={cn(\n \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot='tabs-content'\n className={cn('flex-1 outline-none', className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","'use client'\n\nimport { ThemeProvider as NextThemesProvider, type ThemeProviderProps } from 'next-themes'\n\nexport function ThemeProvider({ children, ...props }: ThemeProviderProps) {\n return <NextThemesProvider {...props}>{children}</NextThemesProvider>\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\nimport { useTheme } from 'next-themes'\nimport { Button } from '../components/Button'\nimport { Icons } from '../components/Icons'\n\nexport function ThemeSwitcher() {\n const { resolvedTheme, setTheme } = useTheme()\n const [mounted, setMounted] = useState(false)\n\n const classes = 'fill-nsw-grey-600 dark:fill-nsw-grey-100 size-6'\n\n // Avoid hydration mismatch by only rendering after mount\n useEffect(() => {\n setMounted(true)\n }, [])\n\n if (!mounted) {\n return (\n <Button variant='ghost' size='icon' className='h-10 w-10' disabled>\n <Icons.light_mode className={classes} />\n </Button>\n )\n }\n\n return (\n <Button\n variant='outline'\n size='icon'\n className='h-10 w-10 cursor-pointer'\n onClick={() => setTheme(resolvedTheme === 'dark' ? 'light' : 'dark')}\n aria-label={`Switch to ${resolvedTheme === 'dark' ? 'light' : 'dark'} theme`}\n >\n {resolvedTheme === 'dark' ? (\n <Icons.light_mode className={classes} />\n ) : (\n <Icons.dark_mode className={classes} />\n )}\n <span className='sr-only'>\n {resolvedTheme === 'dark' ? 'Switch to light theme' : 'Switch to dark theme'}\n </span>\n </Button>\n )\n}\n","'use client'\n\nimport { useTheme } from 'next-themes'\nimport { Toaster as Sonner, ToasterProps } from 'sonner'\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = 'system' } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps['theme']}\n className='toaster group'\n style={\n {\n '--normal-bg': 'var(--popover)',\n '--normal-text': 'var(--popover-foreground)',\n '--normal-border': 'var(--border)',\n } as React.CSSProperties\n }\n {...props}\n />\n )\n}\n\nexport { Toaster }\n","// context/TocContext.tsx\n'use client'\n\nimport { createContext, useContext, useState, ReactNode, Dispatch, SetStateAction } from 'react'\n\ninterface TocContextType {\n toc: boolean\n setToc: Dispatch<SetStateAction<boolean>>\n}\n\nconst TocContext = createContext<TocContextType>({\n toc: true,\n setToc: () => {},\n})\n\nexport function TocProvider({ children }: { children: ReactNode }) {\n const [toc, setToc] = useState(true)\n return <TocContext.Provider value={{ toc, setToc }}>{children}</TocContext.Provider>\n}\n\nexport function useToc() {\n return useContext(TocContext)\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as TogglePrimitive from '@radix-ui/react-toggle'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary/10 data-[state=on]:text-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline: 'border-border bg-transparent shadow-xs hover:bg-primary/10 hover:text-foreground',\n },\n size: {\n default: 'h-9 px-2 min-w-9',\n sm: 'h-8 px-1.5 min-w-8',\n lg: 'h-10 px-2.5 min-w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction Toggle({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot='toggle'\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","'use client'\n\nimport * as React from 'react'\nimport * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group'\nimport { type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\nimport { toggleVariants } from '../components/Toggle'\n\nconst ToggleGroupContext = React.createContext<VariantProps<typeof toggleVariants>>({\n size: 'default',\n variant: 'default',\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> & VariantProps<typeof toggleVariants>) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot='toggle-group'\n data-variant={variant}\n data-size={size}\n className={cn(\n 'group/toggle-group flex w-fit items-center rounded-md data-[variant=outline]:shadow-xs',\n className,\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> & VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot='toggle-group-item'\n data-variant={context.variant || variant}\n data-size={context.size || size}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n 'min-w-0 rounded-md shadow-none focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l',\n className,\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n","import { slugifyWithCounter } from '@sindresorhus/slugify'\nimport { SimpleNode, HeadingNode } from '../types/types'\n\nexport function getNodeText(node: HTMLElement | SimpleNode): string {\n let text = ''\n\n for (const child of node.children ?? []) {\n if ('type' in child && child.type === 'text') {\n text += child.attributes?.content ?? ''\n } else if (child instanceof HTMLElement) {\n text += getNodeText(child)\n }\n }\n\n return text\n}\n\nexport function domToSimple(node: Node): SimpleNode {\n if (node.nodeType === Node.TEXT_NODE) {\n return {\n type: 'text',\n attributes: {\n content: node.textContent ?? undefined,\n },\n }\n }\n\n if (node.nodeType === Node.ELEMENT_NODE) {\n return {\n type: node.nodeName.toLowerCase(),\n attributes: {},\n children: Array.from(node.childNodes).map(domToSimple),\n }\n }\n\n if (node.nodeType === Node.COMMENT_NODE) {\n return {\n type: 'comment',\n attributes: {},\n }\n }\n\n throw new Error('Unsupported node type')\n}\n\nexport function getHeadings(slugify = slugifyWithCounter()) {\n const content = document.querySelector('article')\n if (!content) {\n return []\n }\n const headings = Array.from(content.querySelectorAll('h2, h3, h4, h5, h6'))\n\n const result: HeadingNode[] = []\n const stack: HeadingNode[] = []\n\n headings.forEach((el) => {\n const simplifiedNode = domToSimple(el)\n const title = getNodeText(simplifiedNode).trim()\n const slugifiedTitle = slugify(title)\n const id = el.id || slugifiedTitle\n\n const level = parseInt(el.tagName[1])\n const node = { level, id, title, children: [] }\n\n if (!el.id) el.id = id\n\n if (level === 2) {\n result.push(node)\n stack.length = 0\n stack.push(node)\n } else {\n while (stack.length && stack[stack.length - 1].level >= level) {\n stack.pop()\n }\n if (stack.length) {\n stack[stack.length - 1].children.push(node)\n }\n stack.push(node)\n }\n })\n\n return result\n}\n"]}
1
+ {"version":3,"sources":["../src/lib/utils.ts","../src/components/Button.tsx","../src/components/Card.tsx","../src/components/Icons.tsx","../src/lib/colors.ts","../src/components/ColorCard.tsx","../src/components/Collapsible.tsx","../src/components/DynamicFavicon.tsx","../src/components/Social.tsx","../src/components/Footer.tsx","../src/components/Toggle.tsx","../src/components/ToggleGroup.tsx","../src/components/FormatToggle.tsx","../src/components/Label.tsx","../src/components/Logo.tsx","../src/components/Masthead.tsx","../src/components/Navigation.tsx","../src/components/PrevNextLinks.tsx","../src/components/RadioGroup.tsx","../src/components/Sheet.tsx","../src/components/SidebarNavigation.tsx","../src/components/TableOfContents.tsx","../src/components/Tabs.tsx","../src/components/ThemeProvider.tsx","../src/components/ThemeSwitcher.tsx","../src/components/Sonner.tsx","../src/components/TocProvider.tsx","../src/components/ViewToggle.tsx","../src/lib/sections.ts"],"names":["twMerge","clsx","cva","Slot","jsx","culori","rgb","oklch","useState","jsxs","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","useEffect","Link","TogglePrimitive","React","ToggleGroupPrimitive","LabelPrimitive","Fragment","navigation","usePathname","RadioGroupPrimitive","CircleIcon","SheetPrimitive","XIcon","NextLink","getHeadings","useCallback","tableOfContents","TabsPrimitive","NextThemesProvider","useTheme","Sonner","createContext","slugify","slugifyWithCounter"],"mappings":"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","file":"index.cjs","sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\nexport function truncate(text: string, maxLength: number): string {\n if (text.length <= maxLength) {\n return text\n }\n return text.slice(0, maxLength) + '...'\n}\n\nexport function kebabCase(str: string) {\n return str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_]+/g, '-')\n .toLowerCase()\n}\n\nexport function camelCase(str: string) {\n return str.toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g, (_, chr) => chr.toUpperCase())\n}\n","'use client'\n\nimport * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border border-nsw-grey-200 bg-background shadow-xs hover:bg-primary/10 hover:text-foreground dark:bg-nsw-grey-800/30 dark:border-nsw-grey-800 dark:hover:bg-nsw-grey-800/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-primary/10 hover:text-foreground dark:hover:bg-primary/90',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : 'button'\n\n return (\n <Comp\n data-slot='button'\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import * as React from 'react'\n\nimport { cn } from '../lib/utils'\n\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card'\n className={cn(\n 'border-nsw-grey-200 dark:border-nsw-grey-50 bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card-header'\n className={cn(\n '@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card-title'\n className={cn('leading-none font-semibold', className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card-description'\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card-action'\n className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot='card-content' className={cn('px-6', className)} {...props} />\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card-footer'\n className={cn('flex items-center px-6 [.border-t]:pt-6', className)}\n {...props}\n />\n )\n}\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent }\n","import { IconProps } from '../types/types'\n\nexport const Icons = {\n account_circle: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M234-276q51-39 114-61.5T480-360q69 0 132 22.5T726-276q35-41 54.5-93T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 59 19.5 111t54.5 93Zm246-164q-59 0-99.5-40.5T340-580q0-59 40.5-99.5T480-720q59 0 99.5 40.5T620-580q0 59-40.5 99.5T480-440Zm0 360q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q53 0 100-15.5t86-44.5q-39-29-86-44.5T480-280q-53 0-100 15.5T294-220q39 29 86 44.5T480-160Zm0-360q26 0 43-17t17-43q0-26-17-43t-43-17q-26 0-43 17t-17 43q0 26 17 43t43 17Zm0-60Zm0 360Z' />\n </svg>\n ),\n attach_file: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M720-330q0 104-73 177T470-80q-104 0-177-73t-73-177v-370q0-75 52.5-127.5T400-880q75 0 127.5 52.5T580-700v350q0 46-32 78t-78 32q-46 0-78-32t-32-78v-330q0-17 11.5-28.5T400-720q17 0 28.5 11.5T440-680v330q0 13 8.5 21.5T470-320q13 0 21.5-8.5T500-350v-350q-1-42-29.5-71T400-800q-42 0-71 29t-29 71v370q-1 71 49 120.5T470-160q70 0 119-49.5T640-330v-350q0-17 11.5-28.5T680-720q17 0 28.5 11.5T720-680v350Z' />\n </svg>\n ),\n cancel: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m480-424 116 116q11 11 28 11t28-11q11-11 11-28t-11-28L536-480l116-116q11-11 11-28t-11-28q-11-11-28-11t-28 11L480-536 364-652q-11-11-28-11t-28 11q-11 11-11 28t11 28l116 116-116 116q-11 11-11 28t11 28q11 11 28 11t28-11l116-116Zm0 344q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z' />\n </svg>\n ),\n check_circle: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m424-408-86-86q-11-11-28-11t-28 11q-11 11-11 28t11 28l114 114q12 12 28 12t28-12l226-226q11-11 11-28t-11-28q-11-11-28-11t-28 11L424-408Zm56 328q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z' />\n </svg>\n ),\n check: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m382-354 339-339q12-12 28-12t28 12q12 12 12 28.5T777-636L410-268q-12 12-28 12t-28-12L182-440q-12-12-11.5-28.5T183-497q12-12 28.5-12t28.5 12l142 143Z' />\n </svg>\n ),\n chevron_down: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-361q-8 0-15-2.5t-13-8.5L268-556q-11-11-11-28t11-28q11-11 28-11t28 11l156 156 156-156q11-11 28-11t28 11q11 11 11 28t-11 28L508-372q-6 6-13 8.5t-15 2.5Z' />\n </svg>\n ),\n chevron_left: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m432-480 156 156q11 11 11 28t-11 28q-11 11-28 11t-28-11L348-452q-6-6-8.5-13t-2.5-15q0-8 2.5-15t8.5-13l184-184q11-11 28-11t28 11q11 11 11 28t-11 28L432-480Z' />\n </svg>\n ),\n chevron_right: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M504-480 348-636q-11-11-11-28t11-28q11-11 28-11t28 11l184 184q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L404-268q-11 11-28 11t-28-11q-11-11-11-28t11-28l156-156Z' />\n </svg>\n ),\n chevron_up: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-528 324-372q-11 11-28 11t-28-11q-11-11-11-28t11-28l184-184q12-12 28-12t28 12l184 184q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-528Z' />\n </svg>\n ),\n close: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-424 284-228q-11 11-28 11t-28-11q-11-11-11-28t11-28l196-196-196-196q-11-11-11-28t11-28q11-11 28-11t28 11l196 196 196-196q11-11 28-11t28 11q11 11 11 28t-11 28L536-480l196 196q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-424Z' />\n </svg>\n ),\n collapse_all: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-264 324-108q-11 11-28 11t-28-11q-11-11-11-28t11-28l155-155q23-23 57-23t57 23l155 155q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-264Zm0-432 156-156q11-11 28-11t28 11q11 11 11 28t-11 28L537-641q-23 23-57 23t-57-23L268-796q-11-11-11-28t11-28q11-11 28-11t28 11l156 156Z' />\n </svg>\n ),\n computer: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M80-120q-17 0-28.5-11.5T40-160q0-17 11.5-28.5T80-200h800q17 0 28.5 11.5T920-160q0 17-11.5 28.5T880-120H80Zm80-120q-33 0-56.5-23.5T80-320v-440q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v440q0 33-23.5 56.5T800-240H160Zm0-80h640v-440H160v440Zm0 0v-440 440Z' />\n </svg>\n ),\n copy: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-520q0-17 11.5-28.5T160-720q17 0 28.5 11.5T200-680v520h400q17 0 28.5 11.5T640-120q0 17-11.5 28.5T600-80H200Zm160-240v-480 480Z' />\n </svg>\n ),\n dark_mode: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-120q-151 0-255.5-104.5T120-480q0-138 90-239.5T440-838q13-2 23 3.5t16 14.5q6 9 6.5 21t-7.5 23q-17 26-25.5 55t-8.5 61q0 90 63 153t153 63q31 0 61.5-9t54.5-25q11-7 22.5-6.5T819-479q10 5 15.5 15t3.5 24q-14 138-117.5 229T480-120Zm0-80q88 0 158-48.5T740-375q-20 5-40 8t-40 3q-123 0-209.5-86.5T364-660q0-20 3-40t8-40q-78 32-126.5 102T200-480q0 116 82 198t198 82Zm-10-270Z' />\n </svg>\n ),\n dock_to_left: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm440-80h120v-560H640v560Zm-80 0v-560H200v560h360Zm80 0h120-120Z' />\n </svg>\n ),\n dock_to_right: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm120-80v-560H200v560h120Zm80 0h360v-560H400v560Zm-80 0H200h120Z' />\n </svg>\n ),\n delete: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M280-120q-33 0-56.5-23.5T200-200v-520q-17 0-28.5-11.5T160-760q0-17 11.5-28.5T200-800h160q0-17 11.5-28.5T400-840h160q17 0 28.5 11.5T600-800h160q17 0 28.5 11.5T800-760q0 17-11.5 28.5T760-720v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM400-280q17 0 28.5-11.5T440-320v-280q0-17-11.5-28.5T400-640q-17 0-28.5 11.5T360-600v280q0 17 11.5 28.5T400-280Zm160 0q17 0 28.5-11.5T600-320v-280q0-17-11.5-28.5T560-640q-17 0-28.5 11.5T520-600v280q0 17 11.5 28.5T560-280ZM280-720v520-520Z' />\n </svg>\n ),\n desktop: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M400-200v-80H160q-33 0-56.5-23.5T80-360v-400q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v400q0 33-23.5 56.5T800-280H560v80h40q17 0 28.5 11.5T640-160q0 17-11.5 28.5T600-120H360q-17 0-28.5-11.5T320-160q0-17 11.5-28.5T360-200h40ZM160-360h640v-400H160v400Zm0 0v-400 400Z' />\n </svg>\n ),\n display_settings: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M300-410v20q0 13 8.5 21.5T330-360q13 0 21.5-8.5T360-390v-100q0-13-8.5-21.5T330-520q-13 0-21.5 8.5T300-490v20h-30q-13 0-21.5 8.5T240-440q0 13 8.5 21.5T270-410h30Zm130 0h260q13 0 21.5-8.5T720-440q0-13-8.5-21.5T690-470H430q-13 0-21.5 8.5T400-440q0 13 8.5 21.5T430-410Zm230-160h30q13 0 21.5-8.5T720-600q0-13-8.5-21.5T690-630h-30v-20q0-13-8.5-21.5T630-680q-13 0-21.5 8.5T600-650v100q0 13 8.5 21.5T630-520q13 0 21.5-8.5T660-550v-20Zm-390 0h260q13 0 21.5-8.5T560-600q0-13-8.5-21.5T530-630H270q-13 0-21.5 8.5T240-600q0 13 8.5 21.5T270-570ZM160-200q-33 0-56.5-23.5T80-280v-480q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v480q0 33-23.5 56.5T800-200H640v40q0 17-11.5 28.5T600-120H360q-17 0-28.5-11.5T320-160v-40H160Zm0-80h640v-480H160v480Zm0 0v-480 480Z' />\n </svg>\n ),\n double_arrow_left: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m313-480 155 156q11 11 11.5 27.5T468-268q-11 11-28 11t-28-11L228-452q-6-6-8.5-13t-2.5-15q0-8 2.5-15t8.5-13l184-184q11-11 27.5-11.5T468-692q11 11 11 28t-11 28L313-480Zm264 0 155 156q11 11 11.5 27.5T732-268q-11 11-28 11t-28-11L492-452q-6-6-8.5-13t-2.5-15q0-8 2.5-15t8.5-13l184-184q11-11 27.5-11.5T732-692q11 11 11 28t-11 28L577-480Z' />\n </svg>\n ),\n double_arrow_right: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M383-480 228-636q-11-11-11.5-27.5T228-692q11-11 28-11t28 11l184 184q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L284-268q-11 11-27.5 11.5T228-268q-11-11-11-28t11-28l155-156Zm264 0L492-636q-11-11-11.5-27.5T492-692q11-11 28-11t28 11l184 184q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L548-268q-11 11-27.5 11.5T492-268q-11-11-11-28t11-28l155-156Z' />\n </svg>\n ),\n download: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-337q-8 0-15-2.5t-13-8.5L308-492q-12-12-11.5-28t11.5-28q12-12 28.5-12.5T365-549l75 75v-286q0-17 11.5-28.5T480-800q17 0 28.5 11.5T520-760v286l75-75q12-12 28.5-11.5T652-548q11 12 11.5 28T652-492L508-348q-6 6-13 8.5t-15 2.5ZM240-160q-33 0-56.5-23.5T160-240v-80q0-17 11.5-28.5T200-360q17 0 28.5 11.5T240-320v80h480v-80q0-17 11.5-28.5T760-360q17 0 28.5 11.5T800-320v80q0 33-23.5 56.5T720-160H240Z' />\n </svg>\n ),\n east: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M727-440H120q-17 0-28.5-11.5T80-480q0-17 11.5-28.5T120-520h607L572-676q-11-11-11.5-27.5T572-732q11-11 28-11t28 11l224 224q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L628-228q-11 11-27.5 11T572-228q-12-12-12-28.5t12-28.5l155-155Z' />\n </svg>\n ),\n error: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-280q17 0 28.5-11.5T520-320q0-17-11.5-28.5T480-360q-17 0-28.5 11.5T440-320q0 17 11.5 28.5T480-280Zm0-160q17 0 28.5-11.5T520-480v-160q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640v160q0 17 11.5 28.5T480-440Zm0 360q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z' />\n </svg>\n ),\n exclamation: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-400q-17 0-28.5-11.5T440-440v-280q0-17 11.5-28.5T480-760q17 0 28.5 11.5T520-720v280q0 17-11.5 28.5T480-400Zm0 200q-17 0-28.5-11.5T440-240q0-17 11.5-28.5T480-280q17 0 28.5 11.5T520-240q0 17-11.5 28.5T480-200Z' />\n </svg>\n ),\n grid_view: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M200-520q-33 0-56.5-23.5T120-600v-160q0-33 23.5-56.5T200-840h160q33 0 56.5 23.5T440-760v160q0 33-23.5 56.5T360-520H200Zm0 400q-33 0-56.5-23.5T120-200v-160q0-33 23.5-56.5T200-440h160q33 0 56.5 23.5T440-360v160q0 33-23.5 56.5T360-120H200Zm400-400q-33 0-56.5-23.5T520-600v-160q0-33 23.5-56.5T600-840h160q33 0 56.5 23.5T840-760v160q0 33-23.5 56.5T760-520H600Zm0 400q-33 0-56.5-23.5T520-200v-160q0-33 23.5-56.5T600-440h160q33 0 56.5 23.5T840-360v160q0 33-23.5 56.5T760-120H600ZM200-600h160v-160H200v160Zm400 0h160v-160H600v160Zm0 400h160v-160H600v160Zm-400 0h160v-160H200v160Zm400-400Zm0 240Zm-240 0Zm0-240Z' />\n </svg>\n ),\n help: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M478-240q21 0 35.5-14.5T528-290q0-21-14.5-35.5T478-340q-21 0-35.5 14.5T428-290q0 21 14.5 35.5T478-240Zm2 160q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Zm4-172q25 0 43.5 16t18.5 40q0 22-13.5 39T502-525q-23 20-40.5 44T444-427q0 14 10.5 23.5T479-394q15 0 25.5-10t13.5-25q4-21 18-37.5t30-31.5q23-22 39.5-48t16.5-58q0-51-41.5-83.5T484-720q-38 0-72.5 16T359-655q-7 12-4.5 25.5T368-609q14 8 29 5t25-17q11-15 27.5-23t34.5-8Z' />\n </svg>\n ),\n info: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-280q17 0 28.5-11.5T520-320v-160q0-17-11.5-28.5T480-520q-17 0-28.5 11.5T440-480v160q0 17 11.5 28.5T480-280Zm0-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z' />\n </svg>\n ),\n light_mode: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-360q50 0 85-35t35-85q0-50-35-85t-85-35q-50 0-85 35t-35 85q0 50 35 85t85 35Zm0 80q-83 0-141.5-58.5T280-480q0-83 58.5-141.5T480-680q83 0 141.5 58.5T680-480q0 83-58.5 141.5T480-280ZM80-440q-17 0-28.5-11.5T40-480q0-17 11.5-28.5T80-520h80q17 0 28.5 11.5T200-480q0 17-11.5 28.5T160-440H80Zm720 0q-17 0-28.5-11.5T760-480q0-17 11.5-28.5T800-520h80q17 0 28.5 11.5T920-480q0 17-11.5 28.5T880-440h-80ZM480-760q-17 0-28.5-11.5T440-800v-80q0-17 11.5-28.5T480-920q17 0 28.5 11.5T520-880v80q0 17-11.5 28.5T480-760Zm0 720q-17 0-28.5-11.5T440-80v-80q0-17 11.5-28.5T480-200q17 0 28.5 11.5T520-160v80q0 17-11.5 28.5T480-40ZM226-678l-43-42q-12-11-11.5-28t11.5-29q12-12 29-12t28 12l42 43q11 12 11 28t-11 28q-11 12-27.5 11.5T226-678Zm494 495-42-43q-11-12-11-28.5t11-27.5q11-12 27.5-11.5T734-282l43 42q12 11 11.5 28T777-183q-12 12-29 12t-28-12Zm-42-495q-12-11-11.5-27.5T678-734l42-43q11-12 28-11.5t29 11.5q12 12 12 29t-12 28l-43 42q-12 11-28 11t-28-11ZM183-183q-12-12-12-29t12-28l43-42q12-11 28.5-11t27.5 11q12 11 11.5 27.5T282-226l-42 43q-11 12-28 11.5T183-183Zm297-297Z' />\n </svg>\n ),\n link: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M280-280q-83 0-141.5-58.5T80-480q0-83 58.5-141.5T280-680h120q17 0 28.5 11.5T440-640q0 17-11.5 28.5T400-600H280q-50 0-85 35t-35 85q0 50 35 85t85 35h120q17 0 28.5 11.5T440-320q0 17-11.5 28.5T400-280H280Zm80-160q-17 0-28.5-11.5T320-480q0-17 11.5-28.5T360-520h240q17 0 28.5 11.5T640-480q0 17-11.5 28.5T600-440H360Zm200 160q-17 0-28.5-11.5T520-320q0-17 11.5-28.5T560-360h120q50 0 85-35t35-85q0-50-35-85t-85-35H560q-17 0-28.5-11.5T520-640q0-17 11.5-28.5T560-680h120q83 0 141.5 58.5T880-480q0 83-58.5 141.5T680-280H560Z' />\n </svg>\n ),\n list: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M320-600q-17 0-28.5-11.5T280-640q0-17 11.5-28.5T320-680h480q17 0 28.5 11.5T840-640q0 17-11.5 28.5T800-600H320Zm0 160q-17 0-28.5-11.5T280-480q0-17 11.5-28.5T320-520h480q17 0 28.5 11.5T840-480q0 17-11.5 28.5T800-440H320Zm0 160q-17 0-28.5-11.5T280-320q0-17 11.5-28.5T320-360h480q17 0 28.5 11.5T840-320q0 17-11.5 28.5T800-280H320ZM160-600q-17 0-28.5-11.5T120-640q0-17 11.5-28.5T160-680q17 0 28.5 11.5T200-640q0 17-11.5 28.5T160-600Zm0 160q-17 0-28.5-11.5T120-480q0-17 11.5-28.5T160-520q17 0 28.5 11.5T200-480q0 17-11.5 28.5T160-440Zm0 160q-17 0-28.5-11.5T120-320q0-17 11.5-28.5T160-360q17 0 28.5 11.5T200-320q0 17-11.5 28.5T160-280Z' />\n </svg>\n ),\n login: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M520-120q-17 0-28.5-11.5T480-160q0-17 11.5-28.5T520-200h240v-560H520q-17 0-28.5-11.5T480-800q0-17 11.5-28.5T520-840h240q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H520Zm-73-320H160q-17 0-28.5-11.5T120-480q0-17 11.5-28.5T160-520h287l-75-75q-11-11-11-27t11-28q11-12 28-12.5t29 11.5l143 143q12 12 12 28t-12 28L429-309q-12 12-28.5 11.5T372-310q-11-12-10.5-28.5T373-366l74-74Z' />\n </svg>\n ),\n logout: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h240q17 0 28.5 11.5T480-800q0 17-11.5 28.5T440-760H200v560h240q17 0 28.5 11.5T480-160q0 17-11.5 28.5T440-120H200Zm487-320H400q-17 0-28.5-11.5T360-480q0-17 11.5-28.5T400-520h287l-75-75q-11-11-11-27t11-28q11-12 28-12.5t29 11.5l143 143q12 12 12 28t-12 28L669-309q-12 12-28.5 11.5T612-310q-11-12-10.5-28.5T613-366l74-74Z' />\n </svg>\n ),\n menu: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M160-240q-17 0-28.5-11.5T120-280q0-17 11.5-28.5T160-320h640q17 0 28.5 11.5T840-280q0 17-11.5 28.5T800-240H160Zm0-200q-17 0-28.5-11.5T120-480q0-17 11.5-28.5T160-520h640q17 0 28.5 11.5T840-480q0 17-11.5 28.5T800-440H160Zm0-200q-17 0-28.5-11.5T120-680q0-17 11.5-28.5T160-720h640q17 0 28.5 11.5T840-680q0 17-11.5 28.5T800-640H160Z' />\n </svg>\n ),\n more_horiz: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400Z' />\n </svg>\n ),\n more_vert: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-160q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm0-240q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm0-240q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Z' />\n </svg>\n ),\n north: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-80q-17 0-28.5-11.5T440-120v-607L284-572q-11 11-27.5 11.5T228-572q-11-11-11-28t11-28l224-224q6-6 13-8.5t15-2.5q8 0 15 2.5t13 8.5l224 224q11 11 11 27.5T732-572q-12 12-28.5 12T675-572L520-727v607q0 17-11.5 28.5T480-80Z' />\n </svg>\n ),\n open_in_new: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h240q17 0 28.5 11.5T480-800q0 17-11.5 28.5T440-760H200v560h560v-240q0-17 11.5-28.5T800-480q17 0 28.5 11.5T840-440v240q0 33-23.5 56.5T760-120H200Zm560-584L416-360q-11 11-28 11t-28-11q-11-11-11-28t11-28l344-344H600q-17 0-28.5-11.5T560-800q0-17 11.5-28.5T600-840h200q17 0 28.5 11.5T840-800v200q0 17-11.5 28.5T800-560q-17 0-28.5-11.5T760-600v-104Z' />\n </svg>\n ),\n palette: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 32.5-156t88-127Q256-817 330-848.5T488-880q80 0 151 27.5t124.5 76q53.5 48.5 85 115T880-518q0 115-70 176.5T640-280h-74q-9 0-12.5 5t-3.5 11q0 12 15 34.5t15 51.5q0 50-27.5 74T480-80Zm0-400Zm-220 40q26 0 43-17t17-43q0-26-17-43t-43-17q-26 0-43 17t-17 43q0 26 17 43t43 17Zm120-160q26 0 43-17t17-43q0-26-17-43t-43-17q-26 0-43 17t-17 43q0 26 17 43t43 17Zm200 0q26 0 43-17t17-43q0-26-17-43t-43-17q-26 0-43 17t-17 43q0 26 17 43t43 17Zm120 160q26 0 43-17t17-43q0-26-17-43t-43-17q-26 0-43 17t-17 43q0 26 17 43t43 17ZM480-160q9 0 14.5-5t5.5-13q0-14-15-33t-15-57q0-42 29-67t71-25h70q66 0 113-38.5T800-518q0-121-92.5-201.5T488-800q-136 0-232 93t-96 227q0 133 93.5 226.5T480-160Z' />\n </svg>\n ),\n print: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M320-120q-33 0-56.5-23.5T240-200v-80h-80q-33 0-56.5-23.5T80-360v-160q0-51 35-85.5t85-34.5h560q51 0 85.5 34.5T880-520v160q0 33-23.5 56.5T800-280h-80v80q0 33-23.5 56.5T640-120H320ZM160-360h80q0-33 23.5-56.5T320-440h320q33 0 56.5 23.5T720-360h80v-160q0-17-11.5-28.5T760-560H200q-17 0-28.5 11.5T160-520v160Zm480-280v-120H320v120h-80v-120q0-33 23.5-56.5T320-840h320q33 0 56.5 23.5T720-760v120h-80Zm80 180q17 0 28.5-11.5T760-500q0-17-11.5-28.5T720-540q-17 0-28.5 11.5T680-500q0 17 11.5 28.5T720-460Zm-80 260v-160H320v160h320ZM160-560h640-640Z' />\n </svg>\n ),\n progress_activity: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-155.5t86-127Q252-817 325-848.5T480-880q17 0 28.5 11.5T520-840q0 17-11.5 28.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160q133 0 226.5-93.5T800-480q0-17 11.5-28.5T840-520q17 0 28.5 11.5T880-480q0 82-31.5 155t-86 127.5q-54.5 54.5-127 86T480-80Z' />\n </svg>\n ),\n remove: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M240-440q-17 0-28.5-11.5T200-480q0-17 11.5-28.5T240-520h480q17 0 28.5 11.5T760-480q0 17-11.5 28.5T720-440H240Z' />\n </svg>\n ),\n search: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M380-320q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l224 224q11 11 11 28t-11 28q-11 11-28 11t-28-11L532-372q-30 24-69 38t-83 14Zm0-80q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z' />\n </svg>\n ),\n settings_brightness: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m420-320 46 46q6 6 14 6t14-6l46-46h80q8 0 14-6t6-14v-80l46-46q6-6 6-14t-6-14l-46-46v-80q0-8-6-14t-14-6h-80l-46-46q-6-6-14-6t-14 6l-46 46h-80q-8 0-14 6t-6 14v80l-46 46q-6 6-6 14t6 14l46 46v80q0 8 6 14t14 6h80Zm60-40v-240q50 0 85 35t35 85q0 50-35 85t-85 35ZM160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm0-80h640v-480H160v480Zm0 0v-480 480Z' />\n </svg>\n ),\n share: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M680-80q-50 0-85-35t-35-85q0-6 3-28L282-392q-16 15-37 23.5t-45 8.5q-50 0-85-35t-35-85q0-50 35-85t85-35q24 0 45 8.5t37 23.5l281-164q-2-7-2.5-13.5T560-760q0-50 35-85t85-35q50 0 85 35t35 85q0 50-35 85t-85 35q-24 0-45-8.5T598-672L317-508q2 7 2.5 13.5t.5 14.5q0 8-.5 14.5T317-452l281 164q16-15 37-23.5t45-8.5q50 0 85 35t35 85q0 50-35 85t-85 35Zm0-80q17 0 28.5-11.5T720-200q0-17-11.5-28.5T680-240q-17 0-28.5 11.5T640-200q0 17 11.5 28.5T680-160ZM200-440q17 0 28.5-11.5T240-480q0-17-11.5-28.5T200-520q-17 0-28.5 11.5T160-480q0 17 11.5 28.5T200-440Zm480-280q17 0 28.5-11.5T720-760q0-17-11.5-28.5T680-800q-17 0-28.5 11.5T640-760q0 17 11.5 28.5T680-720Zm0 520ZM200-480Zm480-280Z' />\n </svg>\n ),\n side_navigation: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm280-80h280v-560H480v560Z' />\n </svg>\n ),\n south: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M480-97q-8 0-15-2.5t-13-8.5L228-332q-11-11-11-28t11-28q12-12 28.5-11.5T284-388l156 155v-607q0-17 11.5-28.5T480-880q17 0 28.5 11.5T520-840v607l155-155q12-12 28.5-12t28.5 12q11 12 11 28.5T732-332L508-108q-6 6-13 8.5T480-97Z' />\n </svg>\n ),\n unfold_less: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m480-284-96 96q-11 11-28 11t-28-11q-11-11-11-28t11-28l124-124q6-6 13-8.5t15-2.5q8 0 15 2.5t13 8.5l124 124q11 11 11 28t-11 28q-11 11-28 11t-28-11l-96-96Zm0-392 96-96q11-11 28-11t28 11q11 11 11 28t-11 28L508-592q-6 6-13 8.5t-15 2.5q-8 0-15-2.5t-13-8.5L328-716q-11-11-11-28t11-28q11-11 28-11t28 11l96 96Z' />\n </svg>\n ),\n unfold_more: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='m480-236 93-93q12-12 29-12t29 12q12 12 12 29t-12 29L508-148q-6 6-13 8.5t-15 2.5q-8 0-15-2.5t-13-8.5L329-271q-12-12-12-29t12-29q12-12 29-12t29 12l93 93Zm0-484-93 93q-12 12-29 12t-29-12q-12-12-12-29t12-29l123-123q6-6 13-8.5t15-2.5q8 0 15 2.5t13 8.5l123 123q12 12 12 29t-12 29q-12 12-29 12t-29-12l-93-93Z' />\n </svg>\n ),\n upload: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M240-160q-33 0-56.5-23.5T160-240v-80q0-17 11.5-28.5T200-360q17 0 28.5 11.5T240-320v80h480v-80q0-17 11.5-28.5T760-360q17 0 28.5 11.5T800-320v80q0 33-23.5 56.5T720-160H240Zm200-486-75 75q-12 12-28.5 11.5T308-572q-11-12-11.5-28t11.5-28l144-144q6-6 13-8.5t15-2.5q8 0 15 2.5t13 8.5l144 144q12 12 11.5 28T652-572q-12 12-28.5 12.5T595-571l-75-75v286q0 17-11.5 28.5T480-320q-17 0-28.5-11.5T440-360v-286Z' />\n </svg>\n ),\n west: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 -960 960 960' {...props}>\n <path d='M233-440h607q17 0 28.5-11.5T880-480q0-17-11.5-28.5T840-520H233l155-156q11-11 11.5-27.5T388-732q-11-11-28-11t-28 11L108-508q-6 6-8.5 13T97-480q0 8 2.5 15t8.5 13l224 224q11 11 27.5 11t28.5-11q12-12 12-28.5T388-285L233-440Z' />\n </svg>\n ),\n}\n","import * as culori from 'culori'\nimport { kebabCase, camelCase } from '@/lib/utils'\nimport {\n ColorData,\n // DesignTokensTheme,\n ColorProperty,\n DesignTokensShades,\n Format,\n Output,\n Variant,\n ColorThemes,\n} from '@/types/types'\n\nvoid culori.rgb('tomato')\n\nexport const shades = ['lightest', 'lighter', 'light', 'DEFAULT', 'dark', 'darker', 'darkest']\n\nexport const darkenColor = (color: string, factor = 0.3) => {\n const parsed = culori.parse(color) // Parse input color\n if (!parsed || parsed.mode !== 'oklch') return color // Ensure it's OKLCH\n\n // Reduce lightness\n parsed.l = Math.max(0, parsed.l * factor)\n\n // Reduce chroma slightly\n parsed.c = Math.max(0, parsed.c * 0.4)\n\n return culori.formatCss(parsed)\n}\n\nexport const lightenColor = (color: string, factor = 2) => {\n const parsed = culori.parse(color) // Parse input color\n if (!parsed || parsed.mode !== 'oklch') return color // Ensure it's OKLCH\n\n // Increase lightness, but ensure it doesn't exceed 1\n parsed.l = Math.min(1, parsed.l * factor)\n\n // Reduce chroma slightly to avoid color distortion\n parsed.c = parsed.c * 0.1\n\n return culori.formatCss(parsed)\n}\n\nexport const addStartStopToColorArray = (colorArray: string[]): string[] => {\n const darkColor = (color: string) => darkenColor(color, 0.3)\n const lightColor = (color: string) => lightenColor(color, 2)\n\n const colors = [...colorArray]\n colors.unshift(darkColor(colorArray[0]))\n colors.push(lightColor(colorArray[colorArray.length - 1]))\n return colors\n}\n\nexport const interpolateColors = (color1: string, color2: string, steps: number): ColorData[] => {\n const results: ColorData[] = []\n\n const interpolator = culori.interpolate([color1, color2], 'oklch')\n\n for (let i = 0; i < steps; i++) {\n const t = i / (steps - 1)\n const color = interpolator(t)\n results.push({\n oklch: culori.formatCss(color),\n hex: culori.formatHex(color),\n rgb: culori.formatRgb(color),\n hsl: culori.formatHsl(color),\n })\n }\n\n return results\n}\n\nexport const GenerateInterpolatedColors = (colorArray: string[]): ColorData[] => {\n const newColorArray = addStartStopToColorArray(colorArray)\n\n let fullPalette: ColorData[] = []\n\n // Interpolate between pairs of colors\n for (let i = 0; i < newColorArray.length - 1; i++) {\n const color1 = newColorArray[i]\n const color2 = newColorArray[i + 1]\n const steps = 5\n\n const interpolated = interpolateColors(color1, color2, steps)\n // Remove the last color to avoid duplication, except for the last set\n if (i < newColorArray.length - 2) {\n fullPalette = [...fullPalette, ...interpolated.slice(0, -1)]\n } else {\n fullPalette = [...fullPalette, ...interpolated]\n }\n }\n\n const finalPaletteColours = fullPalette.slice(1, -1).reverse()\n\n return finalPaletteColours\n}\n\nexport const getSurroundingColors = (colors: ColorData[], themeColor: string) => {\n const index = colors.findIndex((color) => color.oklch === themeColor)\n\n if (index === -1) return []\n\n const start = Math.max(0, index - 3)\n const end = Math.min(colors.length, index + 4)\n\n const surroundingColors = colors.slice(start, end)\n\n return surroundingColors\n}\n\nexport const colorDataArray = (\n colorsToUse: ColorData[],\n paletteName: string,\n format: Format,\n output: Output,\n variant: Variant,\n) => {\n return colorsToUse.map((color, index) => {\n const shade = (index + 1) * 50\n const value = color[format]\n const key = variant === 'shades' ? shade : shades[index]\n\n const fullKey =\n variant === 'shades'\n ? `${paletteName}-${shade}`\n : shades[index].includes('DEFAULT')\n ? `${paletteName}`\n : `${paletteName}-${shades[index]}`\n\n switch (output) {\n case 'js':\n case 'ts':\n return `'${key}': '${value}'`\n\n case 'css':\n return `--${fullKey}: ${value};`\n\n case 'scss':\n return `$${fullKey}: ${value};`\n\n case 'less':\n return `@${fullKey}: ${value};`\n\n case 'tailwind':\n return `--color-${fullKey}: ${value};`\n\n case 'json':\n return `\"${fullKey}\": \"${value}\"`\n\n default:\n return ''\n }\n })\n}\n\nexport function createColorArray(colorArray: ColorData[], name: string, type: string) {\n const colorCategories = []\n const kebab = kebabCase(name)\n\n colorCategories.push({\n name: name,\n colors: colorArray.map((color, index) => {\n const value = 50 + index * 50\n const colorName =\n type === 'shades'\n ? `${kebab}-${value}`\n : shades[index].includes('DEFAULT')\n ? `${kebab}`\n : `${kebab}-${shades[index]}`\n\n return {\n token: colorName,\n ...color,\n ...(value === 200 ? { name: `${name} 04` } : {}),\n ...(value === 400 ? { name: `${name} 03` } : {}),\n ...(value === 600 ? { name: `${name} 02` } : {}),\n ...(value === 800 ? { name: `${name} 01` } : {}),\n }\n }),\n })\n\n return colorCategories\n}\n\nexport const isLightColor = (hexColor: string) => {\n const hex = hexColor.replace('#', '')\n const r = Number.parseInt(hex.substring(0, 2), 16)\n const g = Number.parseInt(hex.substring(2, 4), 16)\n const b = Number.parseInt(hex.substring(4, 6), 16)\n const brightness = (r * 299 + g * 587 + b * 114) / 1000\n return brightness > 128\n}\n\nexport const renderColorOutput = (\n colorsToUse: ColorData[],\n paletteName: string,\n format: Format,\n output: Output,\n variant: Variant,\n) => {\n const lines = colorDataArray(colorsToUse, paletteName, format, output, variant)\n\n const indent = (str: string, level = 1) => ' '.repeat(level) + str\n\n switch (output) {\n case 'js':\n case 'ts':\n return `export const ${camelCase(paletteName)} = {\\n${lines\n .map((line) => indent(line + ','))\n .join('\\n')}\\n}`\n\n case 'json':\n return `{\\n \"${paletteName}\": {\\n${lines\n .map((line) => indent(line + ',', 2))\n .join('\\n')}\\n }\\n}`\n\n case 'scss':\n case 'less':\n case 'css':\n case 'tailwind':\n return lines.join('\\n')\n\n default:\n return lines.join('\\n')\n }\n}\n\nexport const renderColorOutputToDTFM = (\n colorsToUse: ColorData[],\n paletteName: string,\n format: Format,\n variant: Variant,\n): string => {\n const isStructured = format !== 'hex'\n\n const parseToStructuredColor = (str: string) => {\n const regex = /([a-z]+)\\(([^)]+)\\)/i\n const match = str.match(regex)\n if (!match) return str\n\n const colorSpace = match[1]\n const channelValues = match[2].split(/[\\s,]+/).map((val) => parseFloat(val))\n\n return {\n colorSpace,\n channels: channelValues,\n alpha: 1,\n }\n }\n\n if (variant === 'shades') {\n const tokens: DesignTokensShades = {\n [paletteName]: {},\n }\n\n colorsToUse.forEach((color, index) => {\n const shade = `${(index + 1) * 50}`\n const raw = color[format]\n const value = {\n $type: 'color' as const,\n $value: isStructured ? parseToStructuredColor(raw) : raw,\n }\n\n tokens[paletteName][shade] = value\n })\n\n return JSON.stringify(tokens, null, 2)\n } else {\n const tokens: Record<string, ColorProperty> = {}\n\n colorsToUse.forEach((color, index) => {\n const shade =\n shades[index] === 'DEFAULT' ? `${paletteName}` : `${paletteName}-${shades[index]}`\n const raw = color[format]\n const value = isStructured ? parseToStructuredColor(raw) : raw\n\n tokens[shade] = {\n value,\n type: 'color',\n }\n })\n\n return JSON.stringify(tokens, null, 2)\n }\n\n /* if (variant === 'shades') {\n const tokens: DesignTokensShades = {\n [paletteName]: {},\n }\n\n colorsToUse.forEach((color, index) => {\n const shade = `${(index + 1) * 50}`\n const raw = color[format]\n const value = {\n $type: 'color' as const,\n $value: isStructured ? parseToStructuredColor(raw) : raw,\n }\n\n tokens[paletteName][shade] = value\n })\n\n return JSON.stringify(tokens, null, 2)\n } else {\n const tokens: DesignTokensTheme = {\n [paletteName]: {\n value: '',\n type: 'color' as const,\n variants: {},\n },\n }\n\n colorsToUse.forEach((color, index) => {\n const shade = shades[index]\n const raw = color[format]\n const value = isStructured ? parseToStructuredColor(raw) : raw\n\n if (shade === 'DEFAULT') {\n tokens[paletteName].value = value\n } else {\n tokens[paletteName].variants[shade] = {\n value,\n type: 'color',\n }\n }\n })\n\n return JSON.stringify(tokens, null, 2)\n } */\n}\n\nexport const themeIndices = [3, 7, 11, 15]\nexport const themeTokens = [200, 400, 600, 800]\n\nexport const generateColorThemes = (colors: ColorThemes) => {\n const colorThemes: ColorThemes = {}\n\n for (const category in colors) {\n colorThemes[category] = {}\n\n for (const shade in colors[category]) {\n const base = colors[category][shade]\n colorThemes[category][shade] = {\n name: base.name,\n colors: themeIndices.map((idx) => {\n const c = base.colors[idx]\n return {\n token: c.token,\n oklch: c.oklch,\n hex: c.hex,\n rgb: c.rgb,\n hsl: c.hsl,\n name: c.name,\n }\n }),\n }\n }\n }\n\n return colorThemes\n}\n\nexport function oklchConverter(hex: string): string {\n const converted = culori.oklch(hex)\n if (!converted) {\n throw new Error(`Invalid hex color: ${hex}`)\n }\n return culori.formatCss(converted)\n}\n\nexport const getColorValue = (\n color: { oklch: string; hex: string; rgb: string; hsl: string },\n colorFormat: 'oklch' | 'rgb' | 'hsl' | 'hex',\n): string => {\n switch (colorFormat) {\n case 'oklch':\n return color.oklch\n case 'rgb':\n return color.rgb\n case 'hsl':\n return color.hsl\n case 'hex':\n default:\n return color.hex\n }\n}\n","'use client'\n\nimport { useState } from 'react'\nimport { Icons } from '../components/Icons'\nimport { Card } from '../components/Card'\nimport { Button } from '../components/Button'\nimport { ColorCardProps } from '@/types/types'\nimport { getColorValue } from '../lib/colors'\n\nexport function ColorCard({ name, token, hex, rgb, hsl, oklch, format, viewMode }: ColorCardProps) {\n const [copied, setCopied] = useState(false)\n\n const formattedColor = getColorValue({ oklch, hex, rgb, hsl }, format)\n\n const copyToClipboard = () => {\n navigator.clipboard.writeText(formattedColor)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }\n\n if (viewMode === 'grid') {\n return (\n <Card className='gap-0 overflow-hidden border border-1 py-0'>\n <div className='h-24 w-full' style={{ backgroundColor: hex }} />\n <div className='flex flex-col gap-2 p-4'>\n <div className='flex items-start justify-between'>\n <div>\n <p className='font-medium'>{name}</p>\n <p className='text-muted-foreground font-mono text-sm'>{formattedColor}</p>\n </div>\n <Button variant='ghost' size='icon' className='size-10' onClick={copyToClipboard}>\n {copied ? <Icons.check className='size-5' /> : <Icons.copy className='size-5' />}\n <span className='sr-only'>Copy color value</span>\n </Button>\n </div>\n </div>\n </Card>\n )\n }\n\n return (\n <Card className='gap-0 overflow-hidden border border-1 py-0'>\n <div className='flex items-center gap-4 p-4'>\n <div className='h-12 w-48 flex-shrink-0 rounded-md' style={{ backgroundColor: hex }} />\n <div className='min-w-0 flex-1'>\n <p className='font-medium'>{name}</p>\n <p className='font-medium'>{token}</p>\n <p className='text-muted-foreground truncate font-mono text-sm'>{formattedColor}</p>\n </div>\n <Button\n variant='ghost'\n size='icon'\n className='size-10 flex-shrink-0'\n onClick={copyToClipboard}\n >\n {copied ? <Icons.check className='size-5' /> : <Icons.copy className='size-5' />}\n <span className='sr-only'>Copy color value</span>\n </Button>\n </div>\n </Card>\n )\n}\n","'use client'\n\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible'\n\nfunction Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot='collapsible' {...props} />\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return <CollapsiblePrimitive.CollapsibleTrigger data-slot='collapsible-trigger' {...props} />\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return <CollapsiblePrimitive.CollapsibleContent data-slot='collapsible-content' {...props} />\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","'use client'\n\nimport { useEffect } from 'react'\n\ninterface DynamicFaviconProps {\n lightModeFavicon: string\n darkModeFavicon: string\n}\n\nexport function DynamicFavicon({ lightModeFavicon, darkModeFavicon }: DynamicFaviconProps) {\n useEffect(() => {\n // Function to update favicon based on color scheme\n const updateFavicon = () => {\n const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches\n const favicon = document.querySelector(\"link[rel='icon']\") as HTMLLinkElement\n\n if (favicon) {\n favicon.href = isDarkMode ? darkModeFavicon : lightModeFavicon\n } else {\n // Create favicon link if it doesn't exist\n const newFavicon = document.createElement('link')\n newFavicon.rel = 'icon'\n newFavicon.href = isDarkMode ? darkModeFavicon : lightModeFavicon\n document.head.appendChild(newFavicon)\n }\n }\n\n // Initial update\n updateFavicon()\n\n // Listen for changes in color scheme\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)')\n mediaQuery.addEventListener('change', updateFavicon)\n\n // Clean up\n return () => mediaQuery.removeEventListener('change', updateFavicon)\n }, [lightModeFavicon, darkModeFavicon])\n\n // This component doesn't render anything visible\n return null\n}\n","import { IconProps } from '../types/types'\n\nexport const Social = {\n github: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 0 17 17' {...props}>\n <g clipPath='url(#a)'>\n <path\n fillRule='evenodd'\n d='M8.977.83C4.549.83.97 4.32.97 8.636c0 3.45 2.293 6.371 5.475 7.405.397.078.543-.168.543-.375 0-.18-.013-.8-.013-1.447-2.227.465-2.691-.93-2.691-.93-.358-.905-.888-1.138-.888-1.138-.73-.478.053-.478.053-.478.808.052 1.233.801 1.233.801.715 1.19 1.869.853 2.333.646.066-.504.278-.853.504-1.046-1.777-.181-3.646-.853-3.646-3.852 0-.853.318-1.55.822-2.093-.08-.194-.358-.995.08-2.068 0 0 .676-.207 2.2.801a7.94 7.94 0 0 1 2.002-.258c.676 0 1.365.09 2.001.258 1.525-1.008 2.2-.801 2.2-.801.438 1.073.16 1.874.08 2.068.517.542.822 1.24.822 2.093 0 2.999-1.869 3.658-3.659 3.852.292.245.544.71.544 1.447 0 1.047-.013 1.887-.013 2.145 0 .207.146.453.543.375 3.182-1.034 5.475-3.955 5.475-7.405C16.983 4.319 13.39.83 8.977.83Z'\n clipRule='evenodd'\n ></path>\n </g>\n </svg>\n ),\n linkedin: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 0 17 17' {...props}>\n <g clipPath='url(#a)'>\n <path\n fill='currentColor'\n d='M15.776.83H2.14C1.488.83.96 1.329.96 1.946v13.249c0 .617.528 1.119 1.181 1.119h13.635c.653 0 1.184-.502 1.184-1.116V1.946c0-.617-.531-1.116-1.184-1.116ZM5.706 14.025H3.333V6.633h2.375v7.392ZM4.52 5.626c-.762 0-1.378-.595-1.378-1.33 0-.735.616-1.33 1.378-1.33.76 0 1.375.595 1.375 1.33 0 .732-.615 1.33-1.375 1.33Zm10.075 8.399h-2.371v-3.593c0-.856-.016-1.96-1.235-1.96-1.234 0-1.422.935-1.422 1.9v3.653H7.197V6.633h2.275v1.01h.032c.315-.58 1.09-1.194 2.244-1.194 2.403 0 2.846 1.53 2.846 3.52v4.056Z'\n ></path>\n </g>\n </svg>\n ),\n twitter: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 0 17 17' {...props}>\n <g clipPath='url(#a)'>\n <path\n fill='currentColor'\n d='M13.158 2.058h2.248l-4.913 5.435 5.78 7.395h-4.525l-3.545-4.485-4.056 4.485h-2.25l5.255-5.813-5.545-7.017h4.64l3.205 4.1 3.706-4.1Zm-.79 11.527h1.246L5.57 3.293H4.233l8.135 10.292Z'\n ></path>\n </g>\n </svg>\n ),\n youtube: (props: IconProps) => (\n <svg fill='currentColor' viewBox='0 0 17 17' {...props}>\n <g clipPath='url(#a)'>\n <path\n fill='currentColor'\n d='M16.79 5.475s-.156-1.067-.637-1.536c-.61-.617-1.29-.62-1.603-.656-2.238-.158-5.597-.158-5.597-.158h-.006s-3.36 0-5.597.158c-.313.036-.994.039-1.603.656-.481.469-.635 1.536-.635 1.536S.95 6.73.95 7.982v1.174c0 1.252.16 2.507.16 2.507s.156 1.067.634 1.536c.61.617 1.41.596 1.765.662 1.282.118 5.441.154 5.441.154s3.363-.006 5.6-.16c.313-.036.994-.04 1.603-.656.481-.469.638-1.536.638-1.536s.159-1.252.159-2.507V7.982c0-1.252-.16-2.507-.16-2.507ZM7.298 10.58V6.228l4.322 2.184-4.322 2.168Z'\n ></path>\n </g>\n </svg>\n ),\n}\n","'use client'\n\nimport Link from 'next/link'\nimport { Social } from '../components/Social'\n\nfunction SocialLink({\n href,\n icon: Icon,\n children,\n}: {\n href: string\n icon: React.ComponentType<{ className?: string }>\n children: React.ReactNode\n}) {\n return (\n <Link href={href} className='group'>\n <span className='sr-only'>{children}</span>\n <Icon className='h-5 w-5 fill-zinc-700 transition group-hover:fill-zinc-900 dark:group-hover:fill-zinc-500' />\n </Link>\n )\n}\n\nfunction SmallPrint() {\n return (\n <div className='flex flex-col items-center justify-between gap-5 border-t border-zinc-900/5 pt-8 sm:flex-row dark:border-white/5'>\n <p className='text-xs text-zinc-600 dark:text-zinc-400'>\n &copy; Copyright {new Date().getFullYear()}. All rights reserved.\n </p>\n <div className='flex gap-4'>\n <SocialLink href='https://github.com/digitalnsw' icon={Social.github}>\n Follow us on GitHub\n </SocialLink>\n </div>\n </div>\n )\n}\n\nexport function Footer() {\n return (\n <footer className='mx-auto w-full max-w-2xl space-y-10 pb-16 lg:max-w-5xl'>\n <SmallPrint />\n </footer>\n )\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as TogglePrimitive from '@radix-ui/react-toggle'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary/10 data-[state=on]:text-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline: 'border-border bg-transparent shadow-xs hover:bg-primary/10 hover:text-foreground',\n },\n size: {\n default: 'h-9 px-2 min-w-9',\n sm: 'h-8 px-1.5 min-w-8',\n lg: 'h-10 px-2.5 min-w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction Toggle({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot='toggle'\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","'use client'\n\nimport * as React from 'react'\nimport * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group'\nimport { type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\nimport { toggleVariants } from '../components/Toggle'\n\nconst ToggleGroupContext = React.createContext<VariantProps<typeof toggleVariants>>({\n size: 'default',\n variant: 'default',\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> & VariantProps<typeof toggleVariants>) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot='toggle-group'\n data-variant={variant}\n data-size={size}\n className={cn(\n 'group/toggle-group flex w-fit items-center rounded-md data-[variant=outline]:shadow-xs',\n className,\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> & VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot='toggle-group-item'\n data-variant={context.variant || variant}\n data-size={context.size || size}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n 'min-w-0 rounded-md shadow-none focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l',\n className,\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n","'use client'\n\nimport { ToggleGroup, ToggleGroupItem } from '../components/ToggleGroup'\nimport { ColorFormat, FormatToggleProps } from '../types/types'\n\nexport function FormatToggle({ format, setFormat }: FormatToggleProps) {\n return (\n <div className='flex items-center gap-2'>\n <span className='text-sm font-medium'>Format:</span>\n <ToggleGroup\n type='single'\n value={format}\n onValueChange={(value) => value && setFormat(value as ColorFormat)}\n >\n <ToggleGroupItem value='hex' aria-label='HEX format'>\n HEX\n </ToggleGroupItem>\n <ToggleGroupItem value='rgb' aria-label='RGB format'>\n RGB\n </ToggleGroupItem>\n <ToggleGroupItem value='hsl' aria-label='HSL format'>\n HSL\n </ToggleGroupItem>\n <ToggleGroupItem value='oklch' aria-label='OKLCH format'>\n OKLCH\n </ToggleGroupItem>\n </ToggleGroup>\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\n\nimport { cn } from '../lib/utils'\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot='label'\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","export function Logo(props: React.ComponentPropsWithoutRef<'svg'>) {\n return (\n <>\n <span className='sr-only'>NSW Government</span>\n <svg viewBox='0 0 259 280' aria-hidden='true' {...props}>\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M24.208 270.207h-5.045v-4.277l11.15.054v13.676H26.08v-2.491c-.266.278-.553.556-.86.833-.673.585-1.49 1.07-2.433 1.434-.96.373-2.143.564-3.513.564-2.33 0-4.385-.539-6.109-1.6-1.727-1.065-3.073-2.594-4.007-4.538-.926-1.927-1.395-4.231-1.395-6.85 0-2.657.494-4.994 1.47-6.946.971-1.96 2.363-3.498 4.132-4.571 1.768-1.065 3.849-1.604 6.183-1.604 1.515 0 2.915.245 4.156.725 1.255.485 2.36 1.157 3.273 1.985a9.61 9.61 0 0 1 2.192 2.852 8.196 8.196 0 0 1 .872 3.319l.021.435h-6.038l-.062-.339a5.22 5.22 0 0 0-.814-1.981 4.562 4.562 0 0 0-1.537-1.43c-.614-.352-1.345-.531-2.175-.531-1.005 0-1.931.261-2.741.775-.806.51-1.458 1.351-1.935 2.495-.486 1.169-.731 2.74-.731 4.679 0 1.579.162 2.897.482 3.925.311 1.011.739 1.819 1.266 2.403.523.581 1.117.991 1.773 1.219a6.036 6.036 0 0 0 2.089.369c.669 0 1.27-.112 1.79-.328.523-.224.98-.514 1.354-.866.377-.356.676-.746.884-1.152.216-.41.349-.816.399-1.21l.14-1.028Zm20.878-16.312c2.354 0 4.435.534 6.179 1.587 1.752 1.061 3.13 2.59 4.086 4.546.947 1.935 1.428 4.281 1.428 6.967 0 2.648-.473 4.969-1.412 6.9-.946 1.948-2.317 3.469-4.073 4.521-1.744 1.053-3.837 1.583-6.212 1.583-2.396 0-4.502-.534-6.254-1.583-1.753-1.044-3.135-2.557-4.099-4.505-.947-1.927-1.428-4.252-1.428-6.912 0-2.673.486-5.015 1.449-6.954.968-1.956 2.355-3.486 4.12-4.551 1.764-1.061 3.853-1.599 6.216-1.599Zm0 21.185c1.117 0 2.093-.265 2.898-.787.802-.523 1.433-1.372 1.881-2.516.453-1.185.686-2.772.686-4.712 0-1.993-.237-3.618-.698-4.832-.444-1.181-1.08-2.056-1.885-2.603-.814-.543-1.782-.82-2.878-.82-1.1 0-2.072.277-2.886.82-.81.543-1.453 1.422-1.906 2.611-.47 1.223-.706 2.843-.706 4.82 0 1.944.237 3.531.702 4.712.452 1.148 1.092 1.997 1.902 2.515.81.527 1.781.792 2.89.792Zm23.764-2.93-6.162-17.829H57.09l8.654 25.251h6.195l8.73-25.251h-5.607L68.85 272.15Zm30.312-2.827H88.863v5.206l12.043.016v5.027H83.103v-25.251h17.632l-.016 4.99H88.892v5.089h10.27v4.923Zm22.482-1.529c.685-.613 1.246-1.401 1.678-2.341.419-.933.635-2.081.635-3.419 0-1.497-.311-2.835-.93-3.983-.619-1.169-1.599-2.093-2.919-2.756-1.3-.647-2.973-.974-4.975-.974h-10.738v25.243h5.759v-9.404h4.24l3.991 9.404h6.046l-4.651-10.456c.673-.357 1.3-.8 1.864-1.314Zm-3.513-5.64c0 .999-.336 1.79-1.025 2.428-.69.63-1.649.949-2.857.949h-4.095v-6.606h4.456c1.038 0 1.873.286 2.545.875.657.576.976 1.347.976 2.354Zm15.159-7.833 10.527 15.23v-15.23h5.776v25.251h-5.086l-10.98-15.86v15.86h-5.759v-25.251h5.522Zm33.949 16.461-5.29-16.461h-7.894v25.251h5.809v-16.266l5.124 16.266h4.485l5.162-16.357v16.357h5.826v-25.251h-7.878l-5.344 16.461Zm33.727-1.459h-10.298v5.206l12.046.016v5.027h-17.806v-25.251h17.636l-.021 4.99h-11.818v5.089h10.261v4.923Zm21.494.228-10.523-15.23h-5.527v25.251h5.756v-15.86l10.979 15.86h5.087v-25.251h-5.772v15.23Zm15.586-10.004h-7.388v-5.226h20.402v5.226h-7.217v20.025h-5.797v-20.025Z'\n className='fill-nsw-blue-800 dark:fill-white'\n />\n\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M146.699 209.236c-1.482-2.395-3.717-4.571-6.64-6.465-2.919-1.894-6.897-3.34-11.81-4.297l-13.678-2.814c-4.132-.891-6.981-2.043-8.468-3.419-1.449-1.343-2.184-3.129-2.184-5.309 0-1.388.316-2.652.943-3.759.623-1.111 1.528-2.093 2.687-2.922 1.166-.828 2.616-1.483 4.306-1.943 1.711-.469 3.633-.705 5.714-.705 2.74 0 5.211.361 7.346 1.078 2.109.713 3.857 1.881 5.194 3.481 1.338 1.6 2.16 3.775 2.442 6.465l.038.373h16.971l-.008-.427c-.075-4.575-1.371-8.773-3.85-12.474-2.483-3.705-6.141-6.681-10.879-8.852-4.726-2.164-10.623-3.262-17.528-3.262-5.801 0-11.117 1.011-15.805 3.009-4.7 2.002-8.475 4.89-11.212 8.587-2.749 3.717-4.12 8.164-4.078 13.224.112 6.175 1.99 11.186 5.577 14.903 3.576 3.697 8.476 6.158 14.567 7.306l13.795 2.81c2.529.502 4.825 1.16 6.823 1.96 1.96.784 3.525 1.803 4.651 3.03 1.1 1.197 1.657 2.772 1.657 4.67 0 2.114-.694 3.9-2.06 5.301-1.4 1.434-3.301 2.515-5.643 3.224-2.388.721-5.058 1.086-7.936 1.086-2.807 0-5.394-.435-7.686-1.297-2.28-.85-4.194-2.093-5.689-3.693-1.491-1.591-2.513-3.585-3.04-5.918l-.075-.327H83.846l.045.46c.407 4.045 1.666 7.629 3.738 10.659 2.068 3.009 4.717 5.545 7.873 7.551 3.148 1.993 6.677 3.514 10.494 4.513a46.33 46.33 0 0 0 11.693 1.5c6.466 0 12.2-1.019 17.046-3.034 4.867-2.022 8.717-4.807 11.449-8.276 2.753-3.493 4.148-7.476 4.148-11.848 0-2.064-.232-4.36-.697-6.822-.478-2.482-1.466-4.948-2.936-7.327ZM25.937 191.763l36.916 53.312H77.87v-79.724H61.072v51.282L25.754 165.53l-.125-.179H9.19v79.724h16.748v-53.312Zm196.637 24.577 14.388-50.987h16.457l-23.587 79.724h-13.367l-14.554-50.469-14.659 50.469h-13.147l-23.533-79.724h16.511l14.384 50.979 14.389-50.979h12.167l14.551 50.987Z'\n className='fill-nsw-blue-800 dark:fill-white'\n />\n\n <path\n d='M122.291 145.572c-19.75-2.424-38.934 3.904-72.69-5.263-3.447-.937-4.718 2.694-2.854 5.736 9.07 14.803 54.881 3.203 75.635 1.065.906-.095.814-1.426-.091-1.538ZM208.735 140.309c-33.756 9.167-52.941 2.839-72.691 5.263-.905.112-1 1.447-.091 1.538 20.759 2.138 66.566 13.738 75.635-1.065 1.864-3.042.594-6.673-2.853-5.736ZM59.882 119.132c-6.864-10.058-12.474-21.31-16.818-33.69-13.101 3.826-26.51 9.346-40.16 16.57a5.388 5.388 0 0 0-2.902 4.67 5.38 5.38 0 0 0 2.653 4.812c26.431 15.802 52.273 24.841 76.93 26.933-7.34-4.475-14.072-11.044-19.703-19.295ZM23.059 85.513a201.529 201.529 0 0 1 17.976-6.233c-2.126-6.896-3.87-14.12-5.249-21.658-6.827-.85-13.89-1.4-21.199-1.641-.062 0-.128-.004-.19-.004a5.391 5.391 0 0 0-4.647 2.602 5.383 5.383 0 0 0-.12 5.483c4.243 7.659 8.724 14.808 13.429 21.45ZM88.005 135.572c4.099 1.807 8.293 2.818 12.358 3.029-9.953-7.12-17.773-19.192-22.278-34.58-5.805-19.81-7.745-41.666-5.83-65.247-7.832-4.936-16.32-9.557-25.46-13.85a5.428 5.428 0 0 0-5.402.43 5.396 5.396 0 0 0-2.388 4.841c2.126 34.215 10.95 62.915 26.223 85.298 6.404 9.391 14.281 16.332 22.777 20.079ZM107.488 23.577A253.323 253.323 0 0 0 92.235 6.735c-1.063-1.078-2.433-1.65-3.85-1.65-.506 0-1.017.075-1.523.224-1.923.568-3.314 2.106-3.733 4.115-1.072 5.164-3.11 15.69-4.012 26.101 7.014 4.613 13.492 9.49 19.426 14.621 2.3-8.757 5.29-17.63 8.945-26.569ZM255.42 102.007c-13.65-7.223-27.058-12.744-40.16-16.569-4.343 12.38-9.953 23.631-16.818 33.689-5.63 8.255-12.362 14.82-19.708 19.296 24.658-2.093 50.5-11.132 76.931-26.934 1.715-1.024 2.707-2.822 2.653-4.811-.045-1.99-1.133-3.734-2.898-4.671ZM235.273 85.513c4.705-6.643 9.186-13.796 13.43-21.455.963-1.74.922-3.788-.121-5.483a5.4 5.4 0 0 0-4.837-2.598c-7.309.24-14.377.796-21.199 1.641-1.375 7.539-3.123 14.762-5.249 21.658a203.803 203.803 0 0 1 17.976 6.237ZM180.247 104.025c-4.505 15.384-12.329 27.46-22.278 34.58 4.065-.211 8.263-1.227 12.358-3.034 8.496-3.746 16.373-10.688 22.777-20.075 15.273-22.383 24.097-51.082 26.223-85.297a5.394 5.394 0 0 0-2.388-4.84 5.428 5.428 0 0 0-5.402-.432c-9.14 4.29-17.628 8.91-25.46 13.85 1.915 23.582-.029 45.434-5.83 65.248ZM179.214 35.52c-.901-10.406-2.94-20.932-4.011-26.1-.416-2.01-1.811-3.547-3.733-4.115a5.39 5.39 0 0 0-1.524-.224c-1.416 0-2.787.572-3.85 1.65-5.485 5.549-10.568 11.164-15.252 16.842 3.654 8.939 6.644 17.812 8.949 26.565 5.934-5.127 12.407-10.005 19.421-14.617ZM129.144 87.229c6.64-13.092 17.246-24.829 25.21-32.243-4.372-17.779-11.104-34.55-20.397-52.097C132.998 1.078 131.195 0 129.148 0s-3.845 1.082-4.808 2.889c-9.389 17.604-16.237 35.122-20.377 52.093 8.313 7.688 19.28 20.224 25.181 32.247Z'\n className='fill-nsw-red-600 dark:fill-white'\n />\n\n <path\n d='M153.541 133.686c6.885-4.833 13.77-13.254 18.139-24.97 8.458-22.681 9.334-47.945 8.122-65.823-15.331 10.215-39.665 31.55-47.975 54.36-3.911 10.734-5.734 25.355-2.72 33.511 1.259 3.411 3.401 5.997 6.345 7.227 4.46 1.865 11.312.456 18.089-4.305ZM125.713 95.261c-2.027-4.724-4.261-9.18-7.728-14.186-9.809-14.16-23.026-26.933-39.475-38.185-.17 2.652-2.57 31.297 5.851 59.304 6.408 21.302 17.354 29.98 23.354 33.333 6.038 3.369 11.561 4.165 18.039 2.557-6.565-8.935-5.747-27.27-.041-42.823Z'\n className='fill-nsw-red-600 dark:fill-white'\n />\n </svg>\n </>\n )\n}\n","'use client'\nexport function Masthead() {\n return (\n <div className='bg-primary h-[var(--masthead-height)] w-full'>\n <div className='mx-auto flex w-full items-center justify-between px-4 py-2 sm:px-6 lg:px-8'>\n <div className='flex items-center gap-x-12'>\n <p className='text-xs text-white'>A NSW Government website</p>\n </div>\n </div>\n </div>\n )\n}\n","'use client'\n\nimport React from 'react'\nimport Link from 'next/link'\nimport { usePathname } from 'next/navigation'\nimport clsx from 'clsx'\n\nimport { NavigationSection } from '../types/types.js'\n\nexport function Navigation({\n className,\n onLinkClick,\n navigation,\n}: {\n className?: string\n onLinkClick?: React.MouseEventHandler<HTMLAnchorElement>\n navigation: NavigationSection[]\n}) {\n const pathname = usePathname()\n\n return (\n <nav className={clsx('text-base lg:text-sm', className)}>\n <ul role='list' className='flex flex-col gap-9'>\n {navigation.map((section) => (\n <li key={section.title}>\n <h2 className='font-display text-foreground font-medium dark:text-white'>\n {section.title}\n </h2>\n <ul\n role='list'\n className='border-nsw-grey-400 dark:border-nsw-grey-200/15 mt-2 flex flex-col gap-2 border-l lg:mt-4'\n >\n {section.links.map((link) => (\n <li key={link.href} className='-ml-px flex flex-col items-start gap-2'>\n <Link\n href={link.href}\n onClick={onLinkClick}\n className={clsx(\n 'text-foreground inline-block border-l pl-5 text-base/8 sm:pl-4 sm:text-sm/6',\n 'hover:border-nsw-grey-950 hover:text-nsw-gray-950 hover:font-semibold',\n 'dark:text-nsw-grey-400',\n 'dark:hover:border-nsw-grey-400 dark:hover:text-white',\n link.href === pathname &&\n 'border-primary text-primary border-l font-semibold dark:border-white',\n )}\n >\n {link.title}\n </Link>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </nav>\n )\n}\n","'use client'\n\nimport Link from 'next/link'\nimport { usePathname } from 'next/navigation'\nimport clsx from 'clsx'\n\nimport { NavigationSection } from '../types/types'\n\nfunction ArrowIcon(props: React.ComponentPropsWithoutRef<'svg'>) {\n return (\n <svg viewBox='0 0 16 16' aria-hidden='true' {...props}>\n <path d='m9.182 13.423-1.17-1.16 3.505-3.505H3V7.065h8.517l-3.506-3.5L9.181 2.4l5.512 5.511-5.511 5.512Z' />\n </svg>\n )\n}\n\nfunction PageLink({\n title,\n href,\n dir = 'next',\n ...props\n}: Omit<React.ComponentPropsWithoutRef<'div'>, 'dir' | 'title'> & {\n title: string\n href: string\n dir?: 'previous' | 'next'\n}) {\n return (\n <div {...props}>\n <dt className='font-display text-sm font-medium text-slate-900 dark:text-white'>\n {dir === 'next' ? 'Next' : 'Previous'}\n </dt>\n <dd className='mt-1'>\n <Link\n href={href}\n className={clsx(\n 'flex items-center gap-x-1 text-base font-semibold text-slate-500 hover:text-slate-600 dark:text-slate-400 dark:hover:text-slate-300',\n dir === 'previous' && 'flex-row-reverse',\n )}\n >\n {title}\n <ArrowIcon\n className={clsx('h-4 w-4 flex-none fill-current', dir === 'previous' && '-scale-x-100')}\n />\n </Link>\n </dd>\n </div>\n )\n}\n\ninterface PrevNextLinksProps {\n navigation: NavigationSection[]\n}\n\nexport function PrevNextLinks({ navigation }: PrevNextLinksProps) {\n const pathname = usePathname()\n const allLinks = navigation.flatMap((section) => section.links)\n const linkIndex = allLinks.findIndex((link) => link.href === pathname)\n const previousPage = linkIndex > -1 ? allLinks[linkIndex - 1] : null\n const nextPage = linkIndex > -1 ? allLinks[linkIndex + 1] : null\n\n if (!nextPage && !previousPage) {\n return null\n }\n\n return (\n <dl className='mt-12 flex border-t border-slate-200 pt-6 dark:border-slate-800'>\n {previousPage && <PageLink dir='previous' {...previousPage} />}\n {nextPage && <PageLink className='ml-auto text-right' {...nextPage} />}\n </dl>\n )\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group'\nimport { CircleIcon } from 'lucide-react'\n\nimport { cn } from '../lib/utils'\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot='radio-group'\n className={cn('grid gap-3', className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot='radio-group-item'\n className={cn(\n 'border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot='radio-group-indicator'\n className='relative flex items-center justify-center'\n >\n <CircleIcon className='fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2' />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","'use client'\n\nimport * as React from 'react'\nimport * as SheetPrimitive from '@radix-ui/react-dialog'\nimport { XIcon } from 'lucide-react'\n\nimport { cn } from '../lib/utils'\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot='sheet' {...props} />\n}\n\nfunction SheetTrigger({ ...props }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot='sheet-trigger' {...props} />\n}\n\nfunction SheetClose({ ...props }: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot='sheet-close' {...props} />\n}\n\nfunction SheetPortal({ ...props }: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot='sheet-portal' {...props} />\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot='sheet-overlay'\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = 'right',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left'\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot='sheet-content'\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n side === 'right' &&\n 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',\n side === 'left' &&\n 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm',\n side === 'top' &&\n 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b',\n side === 'bottom' &&\n 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t',\n className,\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className='ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none'>\n <XIcon className='size-4' />\n <span className='sr-only'>Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='sheet-header'\n className={cn('flex flex-col gap-1.5 p-4', className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='sheet-footer'\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot='sheet-title'\n className={cn('text-foreground font-semibold', className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot='sheet-description'\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","'use client'\n\nimport * as React from 'react'\nimport clsx from 'clsx'\nimport { usePathname } from 'next/navigation'\nimport NextLink from 'next/link'\n\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../components/Collapsible'\nimport { Icons } from '../components/Icons'\nimport { Link, NavigationSection } from '../types/types'\n\ntype SidebarLinkProps = {\n link: Link\n pathname: string\n onLinkClick?: React.MouseEventHandler<HTMLAnchorElement>\n depth: number\n}\n\nexport function SidebarNavigation({\n className,\n onLinkClick,\n navigation,\n}: {\n className?: string\n onLinkClick?: React.MouseEventHandler<HTMLAnchorElement>\n navigation: NavigationSection[]\n}) {\n const pathname = usePathname()\n\n return (\n <nav className={clsx('text-base lg:text-sm', className)}>\n <ul role='list' className='flex flex-col gap-9'>\n {navigation.map((section, sectionIndex) => (\n <li key={sectionIndex}>\n <h2 className='font-display text-foreground font-medium dark:text-white'>\n {section.title}\n </h2>\n <ul\n role='list'\n className='border-nsw-grey-400 dark:border-nsw-grey-200/15 mt-2 flex flex-col gap-2 border-l lg:mt-4'\n >\n {section.links.map((link) => (\n <SidebarLink\n key={link.href}\n link={link}\n pathname={pathname}\n onLinkClick={onLinkClick || (() => {})}\n depth={1}\n />\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </nav>\n )\n}\n\nfunction SidebarLink({ link, pathname, onLinkClick, depth }: SidebarLinkProps) {\n const hasChildren = Array.isArray(link.links) && link.links.length > 0\n const isActive = pathname === link.href\n\n const baseLinkClasses = clsx(\n 'border-l pl-4 pr-2 text-base/8 sm:text-sm/6 w-full text-left py-1 rounded-r-md cursor-pointer',\n 'hover:border-nsw-grey-950 hover:text-nsw-gray-950 hover:font-semibold hover:bg-primary/10',\n 'dark:text-nsw-grey-400 dark:hover:border-nsw-grey-400 dark:hover:text-white',\n isActive &&\n 'border-primary text-primary font-bold dark:border-white bg-nsw-sky-100 dark:bg-nsw-sky-900/20',\n )\n\n return (\n <li className='-ml-px flex flex-col items-start gap-1'>\n {hasChildren ? (\n <Collapsible className='w-full' defaultOpen={isActive}>\n <CollapsibleTrigger asChild>\n <button\n className={clsx(baseLinkClasses, 'group flex items-center justify-between gap-1')}\n >\n <span>{link.title}</span>\n <Icons.chevron_right\n className={clsx(\n 'ml-2 size-5 transition-transform duration-200',\n 'group-data-[state=open]:rotate-90',\n )}\n />\n </button>\n </CollapsibleTrigger>\n <CollapsibleContent>\n <ul\n className={clsx(\n 'border-nsw-grey-400 dark:border-nsw-grey-200/15 mt-2 ml-5 flex flex-col gap-1 border-l pl-0',\n )}\n >\n {link.links &&\n link.links.map((childLink: Link) => (\n <SidebarLink\n key={childLink.href}\n link={childLink}\n pathname={pathname}\n onLinkClick={onLinkClick}\n depth={depth + 1}\n />\n ))}\n </ul>\n </CollapsibleContent>\n </Collapsible>\n ) : (\n <NextLink href={link.href} onClick={onLinkClick} className={baseLinkClasses}>\n {link.title}\n </NextLink>\n )}\n </li>\n )\n}\n","'use client'\n\nimport { useCallback, useEffect, useState } from 'react'\nimport Link from 'next/link'\nimport clsx from 'clsx'\n\ntype TableOfContentsItem = {\n id: string\n children: TableOfContentsItem[]\n title: string\n}\n\ntype TableOfContentsProps = {\n tableOfContents: TableOfContentsItem[]\n}\n\nexport function TableOfContents({ tableOfContents }: TableOfContentsProps) {\n const [currentSection, setCurrentSection] = useState(tableOfContents[0]?.id)\n\n const getHeadings = useCallback((tableOfContents: TableOfContentsItem[]) => {\n return tableOfContents\n .flatMap((node) => [node.id, ...node.children.map((child) => child.id)])\n .map((id) => {\n const el = document.getElementById(id)\n if (!el) return null\n\n const style = window.getComputedStyle(el)\n const scrollMt = parseFloat(style.scrollMarginTop)\n\n const top = window.scrollY + el.getBoundingClientRect().top - scrollMt\n return { id, top }\n })\n .filter((x): x is { id: string; top: number } => x !== null)\n }, [])\n\n useEffect(() => {\n if (tableOfContents.length === 0) return\n const headings = getHeadings(tableOfContents)\n function onScroll() {\n const top = window.scrollY\n let current = headings[0].id\n for (const heading of headings) {\n if (top >= heading.top - 10) {\n current = heading.id\n } else {\n break\n }\n }\n setCurrentSection(current)\n }\n window.addEventListener('scroll', onScroll, { passive: true })\n onScroll()\n return () => {\n window.removeEventListener('scroll', onScroll)\n }\n }, [getHeadings, tableOfContents])\n\n function isActive(section: TableOfContentsItem) {\n if (section.id === currentSection) {\n return true\n }\n if (!section.children) {\n return false\n }\n return section.children.findIndex(isActive) > -1\n }\n\n return (\n <div className='hidden xl:sticky xl:top-[4.75rem] xl:-mr-6 xl:block xl:h-[calc(100vh-4.75rem)] xl:flex-none xl:overflow-y-auto xl:py-16 xl:pr-6'>\n <nav aria-labelledby='on-this-page-title' className='w-56'>\n {tableOfContents.length > 0 && (\n <>\n <h2\n id='on-this-page-title'\n className='font-display text-sm font-medium text-slate-900 dark:text-white'\n >\n On this page\n </h2>\n <ol role='list' className='mt-4 space-y-3 text-sm'>\n {tableOfContents.map((section) => (\n <li key={section.id}>\n <h3>\n <Link\n href={`#${section.id}`}\n className={clsx(\n isActive(section)\n ? 'text-primary font-semibold'\n : 'font-normal text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-300',\n )}\n >\n {section.title}\n </Link>\n </h3>\n {section.children.length > 0 && (\n <ol\n role='list'\n className='mt-2 space-y-3 pl-5 text-slate-500 dark:text-slate-400'\n >\n {section.children.map((subSection) => (\n <li key={subSection.id}>\n <Link\n href={`#${subSection.id}`}\n className={\n isActive(subSection)\n ? 'text-primary-light font-semibold'\n : 'hover:text-slate-600 dark:hover:text-slate-300'\n }\n >\n {subSection.title}\n </Link>\n </li>\n ))}\n </ol>\n )}\n </li>\n ))}\n </ol>\n </>\n )}\n </nav>\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as TabsPrimitive from '@radix-ui/react-tabs'\n\nimport { cn } from '../lib/utils'\n\nfunction Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot='tabs'\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n )\n}\n\nfunction TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot='tabs-list'\n className={cn(\n 'bg-nsw-grey-100 text-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot='tabs-trigger'\n className={cn(\n \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot='tabs-content'\n className={cn('flex-1 outline-none', className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","'use client'\n\nimport { ThemeProvider as NextThemesProvider, type ThemeProviderProps } from 'next-themes'\n\nexport function ThemeProvider({ children, ...props }: ThemeProviderProps) {\n return <NextThemesProvider {...props}>{children}</NextThemesProvider>\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\nimport { useTheme } from 'next-themes'\nimport { Button } from '../components/Button'\nimport { Icons } from '../components/Icons'\n\nexport function ThemeSwitcher() {\n const { resolvedTheme, setTheme } = useTheme()\n const [mounted, setMounted] = useState(false)\n\n const classes = 'fill-nsw-grey-600 dark:fill-nsw-grey-100 size-6'\n\n // Avoid hydration mismatch by only rendering after mount\n useEffect(() => {\n setMounted(true)\n }, [])\n\n if (!mounted) {\n return (\n <Button variant='ghost' size='icon' className='h-10 w-10' disabled>\n <Icons.light_mode className={classes} />\n </Button>\n )\n }\n\n return (\n <Button\n variant='outline'\n size='icon'\n className='h-10 w-10 cursor-pointer'\n onClick={() => setTheme(resolvedTheme === 'dark' ? 'light' : 'dark')}\n aria-label={`Switch to ${resolvedTheme === 'dark' ? 'light' : 'dark'} theme`}\n >\n {resolvedTheme === 'dark' ? (\n <Icons.light_mode className={classes} />\n ) : (\n <Icons.dark_mode className={classes} />\n )}\n <span className='sr-only'>\n {resolvedTheme === 'dark' ? 'Switch to light theme' : 'Switch to dark theme'}\n </span>\n </Button>\n )\n}\n","'use client'\n\nimport { useTheme } from 'next-themes'\nimport { Toaster as Sonner, ToasterProps } from 'sonner'\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = 'system' } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps['theme']}\n className='toaster group'\n style={\n {\n '--normal-bg': 'var(--popover)',\n '--normal-text': 'var(--popover-foreground)',\n '--normal-border': 'var(--border)',\n } as React.CSSProperties\n }\n {...props}\n />\n )\n}\n\nexport { Toaster }\n","// context/TocContext.tsx\n'use client'\n\nimport { createContext, useContext, useState, ReactNode, Dispatch, SetStateAction } from 'react'\n\ninterface TocContextType {\n toc: boolean\n setToc: Dispatch<SetStateAction<boolean>>\n}\n\nconst TocContext = createContext<TocContextType>({\n toc: true,\n setToc: () => {},\n})\n\nexport function TocProvider({ children }: { children: ReactNode }) {\n const [toc, setToc] = useState(true)\n return <TocContext.Provider value={{ toc, setToc }}>{children}</TocContext.Provider>\n}\n\nexport function useToc() {\n return useContext(TocContext)\n}\n","'use client'\n\nimport { Icons } from '../components/Icons'\nimport { ToggleGroup, ToggleGroupItem } from '../components/ToggleGroup'\nimport { ViewMode, ViewToggleProps } from '../types/types'\n\nexport function ViewToggle({ viewMode, setViewMode }: ViewToggleProps) {\n return (\n <div className='flex items-center gap-2'>\n <span className='text-sm font-medium'>View:</span>\n <ToggleGroup\n type='single'\n value={viewMode}\n onValueChange={(value) => value && setViewMode(value as ViewMode)}\n >\n <ToggleGroupItem value='grid' aria-label='Grid view'>\n <Icons.grid_view className='size-5' />\n </ToggleGroupItem>\n <ToggleGroupItem value='list' aria-label='List view'>\n <Icons.list className='size-5' />\n </ToggleGroupItem>\n </ToggleGroup>\n </div>\n )\n}\n","import { slugifyWithCounter } from '@sindresorhus/slugify'\nimport { SimpleNode, HeadingNode } from '../types/types'\n\nexport function getNodeText(node: HTMLElement | SimpleNode): string {\n let text = ''\n\n for (const child of node.children ?? []) {\n if ('type' in child && child.type === 'text') {\n text += child.attributes?.content ?? ''\n } else if (child instanceof HTMLElement) {\n text += getNodeText(child)\n }\n }\n\n return text\n}\n\nexport function domToSimple(node: Node): SimpleNode {\n if (node.nodeType === Node.TEXT_NODE) {\n return {\n type: 'text',\n attributes: {\n content: node.textContent ?? undefined,\n },\n }\n }\n\n if (node.nodeType === Node.ELEMENT_NODE) {\n return {\n type: node.nodeName.toLowerCase(),\n attributes: {},\n children: Array.from(node.childNodes).map(domToSimple),\n }\n }\n\n if (node.nodeType === Node.COMMENT_NODE) {\n return {\n type: 'comment',\n attributes: {},\n }\n }\n\n throw new Error('Unsupported node type')\n}\n\nexport function getHeadings(slugify = slugifyWithCounter()) {\n const content = document.querySelector('article')\n if (!content) {\n return []\n }\n const headings = Array.from(content.querySelectorAll('h2, h3, h4, h5, h6'))\n\n const result: HeadingNode[] = []\n const stack: HeadingNode[] = []\n\n headings.forEach((el) => {\n const simplifiedNode = domToSimple(el)\n const title = getNodeText(simplifiedNode).trim()\n const slugifiedTitle = slugify(title)\n const id = el.id || slugifiedTitle\n\n const level = parseInt(el.tagName[1])\n const node = { level, id, title, children: [] }\n\n if (!el.id) el.id = id\n\n if (level === 2) {\n result.push(node)\n stack.length = 0\n stack.push(node)\n } else {\n while (stack.length && stack[stack.length - 1].level >= level) {\n stack.pop()\n }\n if (stack.length) {\n stack[stack.length - 1].children.push(node)\n }\n stack.push(node)\n }\n })\n\n return result\n}\n"]}