<Project Sdk="Microsoft.NET.Sdk.Razor">

  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <SupportedPlatform>browser</SupportedPlatform>
    <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
    <CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)GeneratedFiles</CompilerGeneratedFilesOutputPath>

    <!-- NuGet Package Metadata -->
    <PackageId>Lumeo</PackageId>
    <!-- Version is inherited from /Directory.Build.props (lockstep with all Lumeo packages) -->
    <Title>Lumeo</Title>
    <Authors>nativ.sh</Authors>
    <Description>Lumeo is a modern, accessible Blazor component library with 130+ production-ready components. Built on Tailwind CSS v4 with 8 color themes, dark mode, and 14 locales. Features AI chat primitives (PromptInput, StreamingText, AgentMessage), motion primitives, Scheduler (FullCalendar), Gantt (Frappe), RichTextEditor (TipTap), 30+ ECharts, enterprise DataGrid with Excel/PDF/CSV export, programmatic overlay service, [LumeoForm] Roslyn source generator, RTL support, and 1,727 unit tests. Inspired by shadcn/ui and Radix.</Description>
    <PackageTags>blazor;components;ui;tailwind;shadcn;radix;razor;wasm;dark-mode;theming;echarts;charts;datagrid;scheduler;gantt;rich-text-editor;ai;mcp;source-generator;rtl;i18n;localization;accessible;accessibility</PackageTags>
    <PackageReadmeFile>README.md</PackageReadmeFile>
    <PackageLicenseExpression>MIT</PackageLicenseExpression>
    <PackageProjectUrl>https://github.com/Brain2k-0005/Lumeo</PackageProjectUrl>
    <RepositoryUrl>https://github.com/Brain2k-0005/Lumeo</RepositoryUrl>
    <RepositoryType>git</RepositoryType>
    <PackageIcon>icon.png</PackageIcon>

    <!-- NuGet health: Source Link + deterministic + CI build. These three together
         flip every "missing" indicator in NuGet Package Explorer's Health panel:
           • PublishRepositoryUrl + EmbedUntrackedSources + Microsoft.SourceLink.GitHub
             → enable Source Link so debuggers step into Lumeo's source from GitHub.
           • IncludeSymbols + SymbolPackageFormat=snupkg → ship a .snupkg alongside
             the .nupkg so PDBs are downloadable.
           • Deterministic + ContinuousIntegrationBuild → bit-for-bit reproducible
             build when built in CI (ensures the "Deterministic" health check passes). -->
    <PublishRepositoryUrl>true</PublishRepositoryUrl>
    <EmbedUntrackedSources>true</EmbedUntrackedSources>
    <IncludeSymbols>true</IncludeSymbols>
    <SymbolPackageFormat>snupkg</SymbolPackageFormat>
    <Deterministic>true</Deterministic>
    <ContinuousIntegrationBuild Condition="'$(GITHUB_ACTIONS)' == 'true'">true</ContinuousIntegrationBuild>
  </PropertyGroup>

  <ItemGroup>
    <!-- README.md is packed via the shared rule in /Directory.Build.props
         (gated on PackageReadmeFile, which is set above). -->
    <None Include="icon.png" Pack="true" PackagePath="\" />
  </ItemGroup>

  <!-- Styles/ holds the Tailwind-CLI source for the pre-compiled
       lumeo-utilities.css. The *.src.css file is a build input, not a
       shippable asset, so exclude it from the Razor SDK's implicit globs
       and from the NuGet package. (package.json / package-lock.json live
       at the repo root so they can't be picked up by these globs.) -->
  <ItemGroup>
    <Content Remove="Styles\**" />
    <None Remove="Styles\**" />
    <None Include="Styles\**" Pack="false" />
  </ItemGroup>

  <!-- lumeo-utilities.css (~245 KB) IS shipped in the NuGet package as a
       static web asset at `_content/Lumeo/css/lumeo-utilities.css`. It's a
       pre-compiled Tailwind v4 bundle covering every utility class used
       inside Lumeo + every satellite (DataGrid, Charts, Editor, Scheduler,
       Gantt, Motion). Consumers can either link this file directly (default,
       zero-config) or run their own Tailwind build (advanced) and drop the
       link tag.

       Regeneration: the repo-root `npm run build:css` script compiles
       Styles/lumeo-utilities.src.css → wwwroot/css/lumeo-utilities.css.
       The publish workflow (.github/workflows/publish.yml) runs that script
       before `dotnet pack`, so every published rc gets a fresh bundle that
       reflects every Razor source under src/Lumeo + satellites. The Razor
       SDK auto-globs wwwroot/, so no <Content Include> is needed.

       History: rc.15 dropped the file per the original package-split spec
       on the assumption a registry CDN would host it separately. The CDN
       was never set up; consumers following the docs got a 404 + broken
       Lumeo styling. Restored in rc.18.
       Spec ref: docs/superpowers/specs/2026-04-25-package-split-design.md
                 (see "Update 2026-04-30 (rc.18)" footer). -->

  <ItemGroup>
    <InternalsVisibleTo Include="Lumeo.Tests" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Blazicons.Lucide" Version="2.1.3" />
    <PackageReference Include="ClosedXML" Version="0.104.2" />
    <PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="10.0.6" />
    <!-- Source Link: embeds GitHub URLs in the PDB so debuggers can step into Lumeo source. -->
    <PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
    <PackageReference Include="QRCoder" Version="1.8.0" />
    <PackageReference Include="QuestPDF" Version="2024.12.3" />
  </ItemGroup>

  <!-- [LumeoForm] Roslyn source generator — builds a RenderFragment per annotated POCO. -->
  <ItemGroup>
    <ProjectReference Include="..\Lumeo.SourceGenerators\Lumeo.SourceGenerators.csproj"
                      OutputItemType="Analyzer"
                      ReferenceOutputAssembly="false" />
  </ItemGroup>

  <!-- Pack the analyzer DLL into the Lumeo NuGet package so consumers get the generator too. -->
  <ItemGroup>
    <None Include="..\Lumeo.SourceGenerators\bin\$(Configuration)\netstandard2.0\Lumeo.SourceGenerators.dll"
          Pack="true"
          PackagePath="analyzers/dotnet/cs"
          Visible="false"
          Condition="Exists('..\Lumeo.SourceGenerators\bin\$(Configuration)\netstandard2.0\Lumeo.SourceGenerators.dll')" />
  </ItemGroup>

  <!-- registry/registry.json — master index of all 145 components, generated
       by Lumeo.RegistryGen, consumed by Lumeo.CLI and MCP via HTTPS from the
       docs CDN (https://lumeo.nativ.sh/registry.json — served directly from
       docs/Lumeo.Docs/wwwroot/registry.json, not from this project).
       The per-component snippet JSONs (~146 files) used to live in
       src/Lumeo/wwwroot/registry/ and shipped inside Lumeo.nupkg as static
       web assets — ~3.9 MB compressed of dev-time-only payload that never
       reached an end user's browser. rc.40 removes them entirely from this
       project; RegistryGen now writes them only into docs/Lumeo.Docs/wwwroot/
       registry/, which is the canonical CDN source. End-user apps don't
       need them at runtime (the CLI fetches from the CDN).
       The master index file at src/Lumeo/registry/registry.json stays here
       (and in source control) as RegistryGen's primary output, but is
       excluded from the NuGet package — same rationale. -->
  <ItemGroup>
    <Content Remove="registry\**" />
    <None Remove="registry\**" />
    <None Include="registry\registry.json" Pack="false" />
  </ItemGroup>

</Project>
