igniteui-cli 15.2.2-alpha.3 → 15.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/PromptSession.js +1 -1
- package/lib/commands/ai-config.d.ts +9 -2
- package/lib/commands/ai-config.js +49 -14
- package/lib/commands/build.js +7 -12
- package/lib/commands/new.js +4 -1
- package/package.json +4 -4
- package/templates/blazor/igb/projects/ai-config/files/skills/AGENTS.md +0 -5
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-components/SKILL.md +3 -1
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-components/references/charts.md +7 -35
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-components/references/data-display.md +1 -54
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-components/references/feedback.md +0 -38
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-components/references/form-controls.md +0 -68
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-components/references/layout-manager.md +1 -124
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-components/references/layout.md +0 -62
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-generate-from-image-design/references/gotchas.md +29 -6
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-theming/SKILL.md +2 -2
- package/templates/react/igr-ts/accordion/default/index.js +2 -1
- package/templates/react/igr-ts/avatar/default/index.js +2 -1
- package/templates/react/igr-ts/badge/default/index.js +2 -1
- package/templates/react/igr-ts/banner/default/index.js +2 -1
- package/templates/react/igr-ts/button/default/index.js +2 -1
- package/templates/react/igr-ts/button-group/default/index.js +2 -1
- package/templates/react/igr-ts/calendar/default/index.js +2 -1
- package/templates/react/igr-ts/card/default/index.js +2 -1
- package/templates/react/igr-ts/checkbox/default/index.js +2 -1
- package/templates/react/igr-ts/chip/default/index.js +2 -1
- package/templates/react/igr-ts/circular-progress/default/index.js +2 -1
- package/templates/react/igr-ts/constants.d.ts +2 -0
- package/templates/react/igr-ts/constants.js +5 -0
- package/templates/react/igr-ts/custom-templates/subscription-form/index.js +2 -1
- package/templates/react/igr-ts/date-picker/default/index.js +2 -1
- package/templates/react/igr-ts/divider/default/index.js +2 -1
- package/templates/react/igr-ts/dropdown/default/index.js +2 -1
- package/templates/react/igr-ts/expansion-panel/default/index.js +2 -1
- package/templates/react/igr-ts/form/default/index.js +2 -1
- package/templates/react/igr-ts/grid/basic/index.js +2 -1
- package/templates/react/igr-ts/icon/default/index.js +2 -1
- package/templates/react/igr-ts/icon-button/default/index.js +2 -1
- package/templates/react/igr-ts/input/default/index.js +2 -1
- package/templates/react/igr-ts/linear-progress/default/index.js +2 -1
- package/templates/react/igr-ts/list/default/index.js +2 -1
- package/templates/react/igr-ts/navbar/default/index.js +2 -1
- package/templates/react/igr-ts/projects/_base/files/package.json +2 -1
- package/templates/react/igr-ts/projects/_base/files/src/app/app.tsx +4 -2
- package/templates/react/igr-ts/projects/_base/files/src/setupTests.ts +12 -0
- package/templates/react/igr-ts/projects/_base/files/styles.css +6 -0
- package/templates/react/igr-ts/projects/_base_with_home/files/index.html +2 -1
- package/templates/react/igr-ts/projects/_base_with_home/files/src/app/home/home.tsx +60 -10
- package/templates/react/igr-ts/projects/_base_with_home/files/src/app/home/style.module.css +79 -20
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-components/SKILL.md +0 -8
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-components/reference/CHARTS-GRIDS.md +6 -36
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-components/reference/COMPONENT-CATALOGUE.md +8 -142
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-components/reference/EVENT-HANDLING.md +2 -0
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-customize-theme/SKILL.md +7 -14
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-customize-theme/reference/CSS-THEMING.md +2 -0
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-customize-theme/reference/MCP-SERVER.md +0 -8
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-generate-from-image-design/SKILL.md +2 -2
- package/templates/react/igr-ts/projects/ai-config/files/skills/igniteui-react-generate-from-image-design/reference/component-mapping.md +60 -74
- package/templates/react/igr-ts/projects/empty/index.js +2 -2
- package/templates/react/igr-ts/projects/side-nav/files/src/app/app-routes.tsx +5 -0
- package/templates/react/igr-ts/projects/side-nav/files/src/app/app.css +82 -0
- package/templates/react/igr-ts/projects/side-nav/files/src/app/app.tsx +104 -0
- package/templates/react/igr-ts/projects/side-nav/files/src/app/home/home.tsx +69 -0
- package/templates/react/igr-ts/projects/side-nav/files/src/app/home/style.module.css +105 -0
- package/templates/react/igr-ts/projects/{top-nav → side-nav}/index.d.ts +2 -2
- package/templates/react/igr-ts/projects/{top-nav → side-nav}/index.js +7 -7
- package/templates/react/igr-ts/projects/side-nav-auth/files/index.html +19 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/app-routes.tsx +24 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/app.css +84 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/app.tsx +124 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/AuthContext.tsx +73 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/AuthGuard.tsx +14 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/components/Login.module.css +93 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/components/Login.tsx +69 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/components/LoginBar.module.css +42 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/components/LoginBar.tsx +44 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/components/LoginDialog.module.css +14 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/components/LoginDialog.tsx +49 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/components/Register.module.css +74 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/components/Register.tsx +67 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/models/external-login.ts +10 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/models/login.ts +4 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/models/register-info.ts +6 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/models/user.ts +19 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/pages/Profile.module.css +87 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/pages/Profile.tsx +42 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/pages/RedirectFacebook.tsx +44 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/pages/RedirectGoogle.tsx +40 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/pages/RedirectMicrosoft.tsx +40 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/services/authentication.ts +37 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/services/external-auth-config.ts +44 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/services/externalAuth.ts +272 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/services/fakeBackend.ts +88 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/services/jwtUtil.ts +10 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/services/pkce.ts +29 -0
- package/templates/react/igr-ts/projects/side-nav-auth/files/src/app/authentication/services/userStore.ts +39 -0
- package/templates/react/igr-ts/projects/side-nav-auth/index.d.ts +15 -0
- package/templates/react/igr-ts/projects/side-nav-auth/index.js +46 -0
- package/templates/react/igr-ts/projects/side-nav-mini/files/src/app/app-routes.tsx +5 -0
- package/templates/react/igr-ts/projects/side-nav-mini/files/src/app/app.css +109 -0
- package/templates/react/igr-ts/projects/side-nav-mini/files/src/app/app.test.tsx +20 -0
- package/templates/react/igr-ts/projects/side-nav-mini/files/src/app/app.tsx +81 -0
- package/templates/react/igr-ts/projects/side-nav-mini/files/src/app/home/home.tsx +69 -0
- package/templates/react/igr-ts/projects/side-nav-mini/files/src/app/home/style.module.css +105 -0
- package/templates/react/igr-ts/projects/side-nav-mini/index.d.ts +15 -0
- package/templates/react/igr-ts/projects/side-nav-mini/index.js +46 -0
- package/templates/react/igr-ts/projects/side-nav-mini-auth/files/src/app/app.css +106 -0
- package/templates/react/igr-ts/projects/side-nav-mini-auth/files/src/app/app.tsx +101 -0
- package/templates/react/igr-ts/projects/side-nav-mini-auth/index.d.ts +15 -0
- package/templates/react/igr-ts/projects/side-nav-mini-auth/index.js +50 -0
- package/templates/react/igr-ts/radio-group/default/index.js +2 -1
- package/templates/react/igr-ts/rating/default/index.js +2 -1
- package/templates/react/igr-ts/ripple/default/index.js +2 -1
- package/templates/react/igr-ts/slider/default/index.js +2 -1
- package/templates/react/igr-ts/switch/default/index.js +2 -1
- package/templates/react/igr-ts/tabs/default/index.js +2 -1
- package/templates/react/igr-ts/text-area/default/index.js +2 -1
- package/templates/react/igr-ts/tree/default/index.js +2 -1
- package/templates/webcomponents/igc-ts/grid/default/index.js +1 -1
- package/templates/webcomponents/igc-ts/grid/grid-editing/index.js +1 -1
- package/templates/webcomponents/igc-ts/grid/grid-summaries/index.js +1 -1
- package/templates/webcomponents/igc-ts/projects/_base/files/package.json +1 -1
- package/templates/webcomponents/igc-ts/projects/_base/files/src/app/app.ts +6 -1
- package/templates/webcomponents/igc-ts/projects/_base/files/styles.css +1 -0
- package/templates/webcomponents/igc-ts/projects/_base_with_home/files/index.html +2 -0
- package/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json +2 -2
- package/templates/webcomponents/igc-ts/projects/_base_with_home/files/src/app/home/home.ts +103 -9
- package/templates/webcomponents/igc-ts/projects/_base_with_home/files/src/assets/wc.png +0 -0
- package/templates/webcomponents/igc-ts/projects/ai-config/files/skills/igniteui-wc-choose-components/SKILL.md +122 -160
- package/templates/webcomponents/igc-ts/projects/ai-config/files/skills/igniteui-wc-customize-component-theme/SKILL.md +83 -311
- package/templates/webcomponents/igc-ts/projects/ai-config/files/skills/igniteui-wc-customize-component-theme/references/mcp-setup.md +69 -0
- package/templates/webcomponents/igc-ts/projects/ai-config/files/skills/igniteui-wc-generate-from-image-design/SKILL.md +4 -1
- package/templates/webcomponents/igc-ts/projects/ai-config/files/skills/igniteui-wc-generate-from-image-design/references/component-mapping.md +60 -61
- package/templates/webcomponents/igc-ts/projects/ai-config/files/skills/igniteui-wc-generate-from-image-design/references/gotchas.md +15 -11
- package/templates/webcomponents/igc-ts/projects/ai-config/files/skills/igniteui-wc-optimize-bundle-size/SKILL.md +23 -274
- package/templates/webcomponents/igc-ts/projects/empty/index.js +1 -1
- package/templates/webcomponents/igc-ts/projects/side-nav/files/index.html +21 -0
- package/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app-routing.ts +9 -0
- package/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts +192 -22
- package/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/home/home.ts +175 -0
- package/templates/webcomponents/igc-ts/projects/side-nav/index.js +1 -1
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/index.html +25 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/app-routing.ts +37 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/app.ts +251 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/login-bar/login-bar.ts +124 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/login-dialog/login-dialog.ts +253 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/models/external-login.ts +10 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/models/login.ts +4 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/models/register-info.ts +6 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/models/user.ts +19 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/services/authentication.ts +37 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/services/external-auth-config.ts +44 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/services/externalAuth.ts +272 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/services/fakeBackend.ts +88 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/services/jwtUtil.ts +10 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/services/pkce.ts +29 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/authentication/services/userStore.ts +39 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/profile/profile.ts +142 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/redirect/redirect-facebook.ts +57 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/redirect/redirect-google.ts +53 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/files/src/app/redirect/redirect-microsoft.ts +53 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/index.d.ts +15 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-auth/index.js +46 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-mini/files/src/app/app-routing.ts +13 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-mini/files/src/app/app.ts +238 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-mini/index.d.ts +14 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-mini/index.js +45 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-mini-auth/files/src/app/app.ts +258 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-mini-auth/index.d.ts +15 -0
- package/templates/webcomponents/igc-ts/projects/side-nav-mini-auth/index.js +50 -0
- package/templates/webcomponents/igc-ts/tree/default/index.js +1 -1
- package/templates/react/igr-ts/projects/top-nav/files/src/app/app.css +0 -62
- package/templates/react/igr-ts/projects/top-nav/files/src/app/app.tsx +0 -18
- package/templates/react/igr-ts/projects/top-nav/files/src/components/navigation-header/index.tsx +0 -19
- /package/templates/react/igr-ts/projects/{top-nav → side-nav}/files/src/app/app.test.tsx +0 -0
|
@@ -9,18 +9,24 @@
|
|
|
9
9
|
- [Package Requirements](#package-requirements)
|
|
10
10
|
- [Import Patterns](#import-patterns)
|
|
11
11
|
|
|
12
|
+
> **MCP lookup pattern (applies to all sections):**
|
|
13
|
+
> - Find doc names → `list_components({ framework: "webcomponents", filter: "<keyword>" })`
|
|
14
|
+
> - Usage examples and slots → `get_doc({ framework: "webcomponents", name: "<doc-name>" })`
|
|
15
|
+
> - Find exact class names → `search_api({ platform: "webcomponents", query: "<keyword>" })`
|
|
16
|
+
> - Full property/method/event API → `get_api_reference({ platform: "webcomponents", component: "<ClassName>" })`
|
|
17
|
+
|
|
12
18
|
## Dashboard & Layout Components
|
|
13
19
|
|
|
14
|
-
| UI Pattern | Ignite UI Component |
|
|
15
|
-
|
|
16
|
-
| Top navigation bar | `IgcNavbarComponent` |
|
|
17
|
-
| Side navigation | `IgcNavDrawerComponent` |
|
|
18
|
-
| Content cards/panels | `IgcCardComponent` |
|
|
19
|
-
| Tabbed content | `IgcTabsComponent` |
|
|
20
|
-
| Accordion sections | `IgcAccordionComponent` |
|
|
21
|
-
| Split layouts | `IgcSplitterComponent` |
|
|
22
|
-
| Tile dashboard | `IgcTileManagerComponent` |
|
|
23
|
-
| IDE-style dock layout | `IgcDockManagerComponent` |
|
|
20
|
+
| UI Pattern | Ignite UI Component |
|
|
21
|
+
|---|---|
|
|
22
|
+
| Top navigation bar | `IgcNavbarComponent` |
|
|
23
|
+
| Side navigation | `IgcNavDrawerComponent` |
|
|
24
|
+
| Content cards/panels | `IgcCardComponent` |
|
|
25
|
+
| Tabbed content | `IgcTabsComponent` |
|
|
26
|
+
| Accordion sections | `IgcAccordionComponent` |
|
|
27
|
+
| Split layouts | `IgcSplitterComponent` |
|
|
28
|
+
| Tile dashboard | `IgcTileManagerComponent` |
|
|
29
|
+
| IDE-style dock layout | `IgcDockManagerComponent` |
|
|
24
30
|
|
|
25
31
|
Decision rule:
|
|
26
32
|
|
|
@@ -47,17 +53,19 @@ Component decision matrix (by visual pattern, domain-neutral):
|
|
|
47
53
|
|
|
48
54
|
## Chart Components
|
|
49
55
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
|
53
|
-
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
56
|
+
> Use the lookup pattern above with `filter: "chart"` to find all chart doc names.
|
|
57
|
+
|
|
58
|
+
| UI Pattern | Ignite UI Component |
|
|
59
|
+
|---|---|
|
|
60
|
+
| Area chart | `IgcCategoryChartComponent` |
|
|
61
|
+
| Line chart | `IgcCategoryChartComponent` |
|
|
62
|
+
| Column chart | `IgcCategoryChartComponent` |
|
|
63
|
+
| Bar chart | `IgcDataChartComponent` |
|
|
64
|
+
| Sparkline (mini chart) | `IgcSparklineComponent` |
|
|
65
|
+
| Pie chart | `IgcPieChartComponent` |
|
|
66
|
+
| Donut chart | `IgcDoughnutChartComponent` |
|
|
67
|
+
| Financial chart | `IgcFinancialChartComponent` |
|
|
68
|
+
| Complex multi-series | `IgcDataChartComponent` |
|
|
61
69
|
|
|
62
70
|
Decision rule:
|
|
63
71
|
|
|
@@ -67,17 +75,17 @@ Decision rule:
|
|
|
67
75
|
|
|
68
76
|
## Data Display Components
|
|
69
77
|
|
|
70
|
-
| UI Pattern | Ignite UI Component |
|
|
71
|
-
|
|
72
|
-
| Item list | `IgcListComponent` + `IgcListItemComponent` |
|
|
73
|
-
| User avatar | `IgcAvatarComponent` |
|
|
74
|
-
| Status badge | `IgcBadgeComponent` |
|
|
75
|
-
| Icons | `IgcIconComponent` |
|
|
76
|
-
| Progress bar | `IgcLinearProgressComponent` |
|
|
77
|
-
| Circular progress | `IgcCircularProgressComponent` |
|
|
78
|
-
| Flat data grid | `IgcGridComponent` |
|
|
79
|
-
| Hierarchical/tree data grid | `IgcTreeGridComponent` / `IgcHierarchicalGridComponent` |
|
|
80
|
-
| Filter/tag chips | `IgcChipComponent` |
|
|
78
|
+
| UI Pattern | Ignite UI Component |
|
|
79
|
+
|---|---|
|
|
80
|
+
| Item list | `IgcListComponent` + `IgcListItemComponent` |
|
|
81
|
+
| User avatar | `IgcAvatarComponent` |
|
|
82
|
+
| Status badge | `IgcBadgeComponent` |
|
|
83
|
+
| Icons | `IgcIconComponent` |
|
|
84
|
+
| Progress bar | `IgcLinearProgressComponent` |
|
|
85
|
+
| Circular progress | `IgcCircularProgressComponent` |
|
|
86
|
+
| Flat data grid | `IgcGridComponent` |
|
|
87
|
+
| Hierarchical/tree data grid | `IgcTreeGridComponent` / `IgcHierarchicalGridComponent` |
|
|
88
|
+
| Filter/tag chips | `IgcChipComponent` |
|
|
81
89
|
|
|
82
90
|
Decision rule:
|
|
83
91
|
|
|
@@ -88,42 +96,33 @@ Decision rule:
|
|
|
88
96
|
|
|
89
97
|
## Form & Input Components
|
|
90
98
|
|
|
91
|
-
| UI Pattern | Ignite UI Component |
|
|
92
|
-
|
|
93
|
-
| Text input | `IgcInputComponent` |
|
|
94
|
-
| Dropdown select | `IgcSelectComponent` |
|
|
95
|
-
| Searchable multi-select | `IgcComboComponent` |
|
|
96
|
-
| Date picker | `IgcDatePickerComponent` |
|
|
97
|
-
| Time or date-time entry | `IgcDateTimeInputComponent` |
|
|
98
|
-
| Toggle switch | `IgcSwitchComponent` |
|
|
99
|
-
| Checkbox | `IgcCheckboxComponent` |
|
|
100
|
-
| Radio button group | `IgcRadioGroupComponent` + `IgcRadioComponent` |
|
|
101
|
-
| Slider | `IgcSliderComponent` |
|
|
102
|
-
| Multi-step wizard | `IgcStepperComponent` + `IgcStepComponent` |
|
|
103
|
-
| Chip filter bar | `IgcChipComponent` or `IgcButtonGroupComponent` |
|
|
99
|
+
| UI Pattern | Ignite UI Component |
|
|
100
|
+
|---|---|
|
|
101
|
+
| Text input | `IgcInputComponent` |
|
|
102
|
+
| Dropdown select | `IgcSelectComponent` |
|
|
103
|
+
| Searchable multi-select | `IgcComboComponent` |
|
|
104
|
+
| Date picker | `IgcDatePickerComponent` |
|
|
105
|
+
| Time or date-time entry | `IgcDateTimeInputComponent` |
|
|
106
|
+
| Toggle switch | `IgcSwitchComponent` |
|
|
107
|
+
| Checkbox | `IgcCheckboxComponent` |
|
|
108
|
+
| Radio button group | `IgcRadioGroupComponent` + `IgcRadioComponent` |
|
|
109
|
+
| Slider | `IgcSliderComponent` |
|
|
110
|
+
| Multi-step wizard | `IgcStepperComponent` + `IgcStepComponent` |
|
|
111
|
+
| Chip filter bar | `IgcChipComponent` or `IgcButtonGroupComponent` |
|
|
104
112
|
|
|
105
113
|
## Calendar & Scheduling Components
|
|
106
114
|
|
|
107
|
-
| UI Pattern | Ignite UI Component |
|
|
108
|
-
|
|
109
|
-
| Calendar view | `IgcCalendarComponent` |
|
|
110
|
-
| Date range picker | `IgcDateRangePickerComponent` |
|
|
111
|
-
| Month/year picker | `IgcCalendarComponent` |
|
|
115
|
+
| UI Pattern | Ignite UI Component |
|
|
116
|
+
|---|---|
|
|
117
|
+
| Calendar view | `IgcCalendarComponent` |
|
|
118
|
+
| Date range picker | `IgcDateRangePickerComponent` |
|
|
119
|
+
| Month/year picker | `IgcCalendarComponent` |
|
|
112
120
|
|
|
113
121
|
## Package Requirements
|
|
114
122
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
Additional packages may be required beyond the main package:
|
|
118
|
-
|
|
119
|
-
| Capability | Additional packages |
|
|
120
|
-
|---|---|
|
|
121
|
-
| Lightweight tabular data | `igniteui-grid-lite` |
|
|
122
|
-
| Advanced grids | `igniteui-webcomponents-grids` (trial) or `@infragistics/igniteui-webcomponents-grids` (licensed) |
|
|
123
|
-
| Charts / sparklines | `igniteui-webcomponents-core` + `igniteui-webcomponents-charts` (trial) or licensed equivalents |
|
|
124
|
-
| Dock manager | `igniteui-dockmanager` (trial) or `@infragistics/igniteui-dockmanager` (licensed) |
|
|
123
|
+
See [`igniteui-wc-choose-components`](../../igniteui-wc-choose-components/SKILL.md) for the full package routing table (general UI, grids, charts, dock manager, trial vs. licensed).
|
|
125
124
|
|
|
126
|
-
Install only the packages required by the components you actually selected.
|
|
125
|
+
Install only the packages required by the components you actually selected.
|
|
127
126
|
|
|
128
127
|
## Import Patterns
|
|
129
128
|
|
|
@@ -28,14 +28,21 @@ Do not assume everything comes from `igniteui-webcomponents`. Advanced grids, ch
|
|
|
28
28
|
|
|
29
29
|
## Chart Properties
|
|
30
30
|
|
|
31
|
+
> **Always use the MCP lookup pattern before coding any chart.** Chart APIs are extensive and change between versions.
|
|
32
|
+
> - Find doc names → `list_components({ framework: "webcomponents", filter: "chart" })`
|
|
33
|
+
> - Usage examples and slots → `get_doc({ framework: "webcomponents", name: "<doc-name>" })`
|
|
34
|
+
> - Find exact class names → `search_api({ platform: "webcomponents", query: "<keyword>" })`
|
|
35
|
+
> - Full property/method/event API → `get_api_reference({ platform: "webcomponents", component: "<ClassName>" })`
|
|
36
|
+
|
|
31
37
|
### Markers shown by default
|
|
32
38
|
Category charts can show markers by default. If the screenshot does not show markers, set `markerTypes` to the matching no-marker option documented for the component. Confirm the exact value shape from `get_doc`.
|
|
33
39
|
|
|
34
|
-
### `plotAreaBackground`
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
40
|
+
### `plotAreaBackground` and `areaFillOpacity` are inherited — not visible in `get_api_reference`
|
|
41
|
+
Both properties exist but are defined on parent classes, so `get_api_reference({ platform: "webcomponents", component: "IgcCategoryChartComponent" })` will not list them. Use `search_api` to find them:
|
|
42
|
+
```ts
|
|
43
|
+
chart.plotAreaBackground = 'transparent'; // inherited from IgcSeriesViewerComponent
|
|
44
|
+
chart.areaFillOpacity = 0.3; // inherited from IgcDomainChartComponent (not on IgcSparklineComponent)
|
|
45
|
+
```
|
|
39
46
|
|
|
40
47
|
### `includedProperties` must be a real array
|
|
41
48
|
Assign it as an array through JavaScript or TypeScript, not as a serialized string:
|
|
@@ -74,9 +81,6 @@ igc-category-chart {
|
|
|
74
81
|
|
|
75
82
|
## Component Properties
|
|
76
83
|
|
|
77
|
-
### Avatar shape is controlled by `shape`
|
|
78
|
-
Use the supported `shape` API (`circle`, `rounded`, `square`, etc. as documented for the component).
|
|
79
|
-
|
|
80
84
|
### List item title and subtitle are slots
|
|
81
85
|
Use the Web Components slot anatomy:
|
|
82
86
|
```html
|
|
@@ -94,11 +98,11 @@ Use the Web Components slot anatomy:
|
|
|
94
98
|
```
|
|
95
99
|
|
|
96
100
|
### Nav drawer width
|
|
97
|
-
|
|
101
|
+
Width is controlled by two CSS custom properties exposed on the host — they are **not** design tokens and won't appear in `get_component_design_tokens`. Override them directly:
|
|
98
102
|
```css
|
|
99
103
|
igc-nav-drawer {
|
|
100
|
-
--menu-full-width:
|
|
101
|
-
--menu-mini-width:
|
|
104
|
+
--menu-full-width: 280px; /* default: 240px */
|
|
105
|
+
--menu-mini-width: 56px; /* no default — collapses to content width if unset */
|
|
102
106
|
}
|
|
103
107
|
```
|
|
104
108
|
|
|
@@ -97,92 +97,24 @@ For more details, see the [igniteui-wc-integrate-with-framework](../igniteui-wc-
|
|
|
97
97
|
|
|
98
98
|
## Analyzing Your Bundle
|
|
99
99
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
**Installation:**
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
npm install --save-dev webpack-bundle-analyzer
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
**Configuration (`webpack.config.js`):**
|
|
109
|
-
|
|
110
|
-
```javascript
|
|
111
|
-
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
|
|
112
|
-
|
|
113
|
-
module.exports = {
|
|
114
|
-
plugins: [
|
|
115
|
-
new BundleAnalyzerPlugin({
|
|
116
|
-
analyzerMode: 'static',
|
|
117
|
-
openAnalyzer: false,
|
|
118
|
-
reportFilename: 'bundle-report.html'
|
|
119
|
-
})
|
|
120
|
-
]
|
|
121
|
-
};
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
**Run analysis:**
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
npm run build
|
|
128
|
-
# Open bundle-report.html to see what's included
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### Using Vite Bundle Analyzer
|
|
132
|
-
|
|
133
|
-
**Installation:**
|
|
100
|
+
Use a bundle analyzer to identify what's being included before and after optimization.
|
|
134
101
|
|
|
102
|
+
**Vite projects** — [rollup-plugin-visualizer](https://www.npmjs.com/package/rollup-plugin-visualizer):
|
|
135
103
|
```bash
|
|
136
104
|
npm install --save-dev rollup-plugin-visualizer
|
|
137
105
|
```
|
|
106
|
+
Add `visualizer()` to the Vite `plugins` array and run `npm run build`. The plugin opens a treemap in the browser.
|
|
138
107
|
|
|
139
|
-
**
|
|
140
|
-
|
|
141
|
-
```typescript
|
|
142
|
-
import { defineConfig } from 'vite';
|
|
143
|
-
import { visualizer } from 'rollup-plugin-visualizer';
|
|
144
|
-
|
|
145
|
-
export default defineConfig({
|
|
146
|
-
plugins: [
|
|
147
|
-
visualizer({
|
|
148
|
-
open: true,
|
|
149
|
-
gzipSize: true,
|
|
150
|
-
brotliSize: true,
|
|
151
|
-
})
|
|
152
|
-
]
|
|
153
|
-
});
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
**Run analysis:**
|
|
157
|
-
|
|
108
|
+
**Webpack projects** — [webpack-bundle-analyzer](https://www.npmjs.com/package/webpack-bundle-analyzer):
|
|
158
109
|
```bash
|
|
159
|
-
npm
|
|
160
|
-
# Opens stats.html automatically
|
|
110
|
+
npm install --save-dev webpack-bundle-analyzer
|
|
161
111
|
```
|
|
112
|
+
Add `BundleAnalyzerPlugin` to `webpack.config.js` plugins and run `npm run build`.
|
|
162
113
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
**Installation:**
|
|
166
|
-
|
|
114
|
+
**Framework-agnostic** — [source-map-explorer](https://www.npmjs.com/package/source-map-explorer):
|
|
167
115
|
```bash
|
|
168
116
|
npm install --save-dev source-map-explorer
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
**Package.json:**
|
|
172
|
-
|
|
173
|
-
```json
|
|
174
|
-
{
|
|
175
|
-
"scripts": {
|
|
176
|
-
"analyze": "source-map-explorer 'dist/**/*.js'"
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**Run:**
|
|
182
|
-
|
|
183
|
-
```bash
|
|
184
|
-
npm run build
|
|
185
|
-
npm run analyze
|
|
117
|
+
# Then: source-map-explorer 'dist/**/*.js'
|
|
186
118
|
```
|
|
187
119
|
|
|
188
120
|
## Audit Your Component Usage
|
|
@@ -381,35 +313,14 @@ export class MyComponent {
|
|
|
381
313
|
|
|
382
314
|
## Route-Based Code Splitting
|
|
383
315
|
|
|
384
|
-
Load components only for
|
|
385
|
-
|
|
386
|
-
### React Router
|
|
387
|
-
|
|
388
|
-
```tsx
|
|
389
|
-
import { BrowserRouter, Routes, Route } from 'react-router-dom';
|
|
390
|
-
import { lazy, Suspense } from 'react';
|
|
391
|
-
|
|
392
|
-
// Lazy load route components
|
|
393
|
-
const HomePage = lazy(() => import('./pages/Home'));
|
|
394
|
-
const DashboardPage = lazy(() => import('./pages/Dashboard'));
|
|
316
|
+
Load Ignite UI components only for the routes that need them by placing `defineComponents(...)` calls inside the lazy-loaded route module for each framework.
|
|
395
317
|
|
|
396
|
-
|
|
397
|
-
return (
|
|
398
|
-
<BrowserRouter>
|
|
399
|
-
<Suspense fallback={<div>Loading...</div>}>
|
|
400
|
-
<Routes>
|
|
401
|
-
<Route path="/" element={<HomePage />} />
|
|
402
|
-
<Route path="/dashboard" element={<DashboardPage />} />
|
|
403
|
-
</Routes>
|
|
404
|
-
</Suspense>
|
|
405
|
-
</BrowserRouter>
|
|
406
|
-
);
|
|
407
|
-
}
|
|
408
|
-
```
|
|
318
|
+
### React (using React.lazy)
|
|
409
319
|
|
|
410
|
-
|
|
320
|
+
Put component imports and `defineComponents` at the top of each page module. React's `lazy()` + `Suspense` handles the async split:
|
|
411
321
|
|
|
412
322
|
```tsx
|
|
323
|
+
// pages/Dashboard.tsx
|
|
413
324
|
import { IgrCard, IgrButton } from 'igniteui-react';
|
|
414
325
|
|
|
415
326
|
function Dashboard() {
|
|
@@ -424,30 +335,11 @@ function Dashboard() {
|
|
|
424
335
|
}
|
|
425
336
|
```
|
|
426
337
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
```typescript
|
|
430
|
-
// router/index.ts
|
|
431
|
-
import { createRouter, createWebHistory } from 'vue-router';
|
|
432
|
-
|
|
433
|
-
const routes = [
|
|
434
|
-
{
|
|
435
|
-
path: '/',
|
|
436
|
-
component: () => import('../views/Home.vue') // Lazy load
|
|
437
|
-
},
|
|
438
|
-
{
|
|
439
|
-
path: '/dashboard',
|
|
440
|
-
component: () => import('../views/Dashboard.vue') // Lazy load
|
|
441
|
-
}
|
|
442
|
-
];
|
|
338
|
+
Refer to your router's lazy-loading docs (React Router, TanStack Router, etc.) for how to split `pages/Dashboard` into its own chunk.
|
|
443
339
|
|
|
444
|
-
|
|
445
|
-
history: createWebHistory(),
|
|
446
|
-
routes
|
|
447
|
-
});
|
|
448
|
-
```
|
|
340
|
+
### Vue 3
|
|
449
341
|
|
|
450
|
-
|
|
342
|
+
Use `onMounted` to register components only when the route mounts:
|
|
451
343
|
|
|
452
344
|
```vue
|
|
453
345
|
<script setup lang="ts">
|
|
@@ -461,109 +353,23 @@ onMounted(async () => {
|
|
|
461
353
|
</script>
|
|
462
354
|
```
|
|
463
355
|
|
|
356
|
+
Refer to Vue Router docs for the `() => import('./views/Dashboard.vue')` lazy-route syntax.
|
|
357
|
+
|
|
464
358
|
### Angular
|
|
465
359
|
|
|
466
|
-
|
|
467
|
-
// app-routing.module.ts
|
|
468
|
-
import { NgModule } from '@angular/core';
|
|
469
|
-
import { RouterModule, Routes } from '@angular/router';
|
|
470
|
-
|
|
471
|
-
const routes: Routes = [
|
|
472
|
-
{
|
|
473
|
-
path: 'dashboard',
|
|
474
|
-
loadChildren: () => import('./dashboard/dashboard.module').then(m => m.DashboardModule)
|
|
475
|
-
}
|
|
476
|
-
];
|
|
477
|
-
|
|
478
|
-
@NgModule({
|
|
479
|
-
imports: [RouterModule.forRoot(routes)],
|
|
480
|
-
exports: [RouterModule]
|
|
481
|
-
})
|
|
482
|
-
export class AppRoutingModule {}
|
|
483
|
-
```
|
|
360
|
+
Place `defineComponents(...)` inside the route's module or component so it's included only in that lazy chunk. Refer to Angular Router docs for `loadChildren` / `loadComponent` lazy loading.
|
|
484
361
|
|
|
485
362
|
## Build Configuration Optimizations
|
|
486
363
|
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
```typescript
|
|
490
|
-
// vite.config.ts
|
|
491
|
-
import { defineConfig } from 'vite';
|
|
492
|
-
|
|
493
|
-
export default defineConfig({
|
|
494
|
-
build: {
|
|
495
|
-
// Enable minification
|
|
496
|
-
minify: 'terser',
|
|
497
|
-
terserOptions: {
|
|
498
|
-
compress: {
|
|
499
|
-
drop_console: true, // Remove console.logs
|
|
500
|
-
drop_debugger: true
|
|
501
|
-
}
|
|
502
|
-
},
|
|
503
|
-
|
|
504
|
-
// Optimize chunk splitting
|
|
505
|
-
rollupOptions: {
|
|
506
|
-
output: {
|
|
507
|
-
manualChunks: {
|
|
508
|
-
// Separate vendor chunks
|
|
509
|
-
'vendor': ['igniteui-webcomponents'],
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
|
-
},
|
|
513
|
-
|
|
514
|
-
// Set chunk size warning limit
|
|
515
|
-
chunkSizeWarningLimit: 600,
|
|
516
|
-
},
|
|
517
|
-
|
|
518
|
-
// Optimize deps
|
|
519
|
-
optimizeDeps: {
|
|
520
|
-
include: ['igniteui-webcomponents']
|
|
521
|
-
}
|
|
522
|
-
});
|
|
523
|
-
```
|
|
364
|
+
Ensure your build tool is running in production mode with minification enabled. For Vite, this is the default for `vite build`. For Webpack, set `mode: 'production'`.
|
|
524
365
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
```javascript
|
|
528
|
-
// webpack.config.js
|
|
529
|
-
module.exports = {
|
|
530
|
-
optimization: {
|
|
531
|
-
splitChunks: {
|
|
532
|
-
chunks: 'all',
|
|
533
|
-
cacheGroups: {
|
|
534
|
-
vendor: {
|
|
535
|
-
test: /[\\/]node_modules[\\/]/,
|
|
536
|
-
name: 'vendors',
|
|
537
|
-
priority: 10,
|
|
538
|
-
},
|
|
539
|
-
igniteui: {
|
|
540
|
-
test: /[\\/]node_modules[\\/]igniteui-webcomponents[\\/]/,
|
|
541
|
-
name: 'igniteui',
|
|
542
|
-
priority: 20,
|
|
543
|
-
}
|
|
544
|
-
}
|
|
545
|
-
},
|
|
546
|
-
minimize: true,
|
|
547
|
-
},
|
|
548
|
-
|
|
549
|
-
// Tree shaking
|
|
550
|
-
mode: 'production',
|
|
551
|
-
};
|
|
552
|
-
```
|
|
366
|
+
To reduce chunk-size warnings from Ignite UI components, increase the `chunkSizeWarningLimit` in Vite or configure `splitChunks` in Webpack to place `igniteui-*` packages in a named vendor chunk. Consult your build tool's documentation for the exact configuration options.
|
|
553
367
|
|
|
554
368
|
## Size Comparison
|
|
555
369
|
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
| Import Strategy | Approximate Size (gzipped) | Components Included |
|
|
559
|
-
|----------------|---------------------------|---------------------|
|
|
560
|
-
| `defineAllComponents()` | ~500KB+ | All 60+ components |
|
|
561
|
-
| 10 components via `defineComponents()` | ~150-200KB | 10 components + deps |
|
|
562
|
-
| 5 components via `defineComponents()` | ~100-150KB | 5 components + deps |
|
|
563
|
-
| 3 components via `defineComponents()` | ~80-120KB | 3 components + deps |
|
|
564
|
-
| 1 component via `defineComponents()` | ~50-80KB | 1 component + deps |
|
|
370
|
+
Actual sizes depend heavily on which components you import (grid and chart components are significantly larger than UI components). Use your bundle analyzer to measure the real impact in your project rather than relying on generic estimates.
|
|
565
371
|
|
|
566
|
-
|
|
372
|
+
The key rule: importing a subset of components with `defineComponents()` instead of `defineAllComponents()` will reduce the bundle by the weight of every component you don't include, plus all of their exclusive dependencies.
|
|
567
373
|
|
|
568
374
|
## Best Practices Checklist
|
|
569
375
|
|
|
@@ -634,64 +440,7 @@ import type { IgcButtonComponent } from 'igniteui-webcomponents';
|
|
|
634
440
|
|
|
635
441
|
## Monitoring Bundle Size
|
|
636
442
|
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
**Using bundlesize (for any build tool):**
|
|
640
|
-
|
|
641
|
-
```bash
|
|
642
|
-
npm install --save-dev bundlesize
|
|
643
|
-
```
|
|
644
|
-
|
|
645
|
-
**Package.json:**
|
|
646
|
-
|
|
647
|
-
```json
|
|
648
|
-
{
|
|
649
|
-
"scripts": {
|
|
650
|
-
"test:size": "bundlesize"
|
|
651
|
-
},
|
|
652
|
-
"bundlesize": [
|
|
653
|
-
{
|
|
654
|
-
"path": "./dist/**/*.js",
|
|
655
|
-
"maxSize": "300 kB"
|
|
656
|
-
}
|
|
657
|
-
]
|
|
658
|
-
}
|
|
659
|
-
```
|
|
660
|
-
|
|
661
|
-
**Run in CI:**
|
|
662
|
-
|
|
663
|
-
```bash
|
|
664
|
-
npm run build
|
|
665
|
-
npm run test:size
|
|
666
|
-
```
|
|
667
|
-
|
|
668
|
-
### GitHub Actions Example
|
|
669
|
-
|
|
670
|
-
```yaml
|
|
671
|
-
name: Bundle Size Check
|
|
672
|
-
|
|
673
|
-
on: [pull_request]
|
|
674
|
-
|
|
675
|
-
jobs:
|
|
676
|
-
size:
|
|
677
|
-
runs-on: ubuntu-latest
|
|
678
|
-
steps:
|
|
679
|
-
- uses: actions/checkout@v3
|
|
680
|
-
- uses: actions/setup-node@v3
|
|
681
|
-
- run: npm ci
|
|
682
|
-
- run: npm run build
|
|
683
|
-
- run: npm run test:size
|
|
684
|
-
```
|
|
685
|
-
|
|
686
|
-
## Expected Results
|
|
687
|
-
|
|
688
|
-
After optimization, you should see:
|
|
689
|
-
|
|
690
|
-
- **Initial load time reduced** by 40-60%
|
|
691
|
-
- **Bundle size reduced** by 50-80%
|
|
692
|
-
- **Better Core Web Vitals** scores
|
|
693
|
-
- **Faster time to interactive**
|
|
694
|
-
- **Lower bandwidth usage** for users
|
|
443
|
+
For ongoing bundle size monitoring in CI, tools like [bundlesize](https://www.npmjs.com/package/bundlesize), [size-limit](https://www.npmjs.com/package/size-limit), or the [Bundlewatch GitHub Action](https://github.com/apps/bundlewatch) can fail a pull request when the bundle exceeds a defined threshold. Configure a size limit appropriate for your project's component set after you've completed the import optimization.
|
|
695
444
|
|
|
696
445
|
## Next Steps
|
|
697
446
|
|
|
@@ -31,7 +31,7 @@ class EmptyPageTemplate extends _base_with_home_1.BaseWithHomeIgcProject {
|
|
|
31
31
|
super(...arguments);
|
|
32
32
|
this.id = "empty";
|
|
33
33
|
this.name = "Empty Project";
|
|
34
|
-
this.description = "
|
|
34
|
+
this.description = "Starter project with routing and a home page";
|
|
35
35
|
this.framework = "webcomponents";
|
|
36
36
|
this.projectType = "igc-ts";
|
|
37
37
|
this.hasExtraConfiguration = false;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en-GB">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<base href="/">
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
8
|
+
<title>Ignite UI for Web Components</title>
|
|
9
|
+
<link rel="icon" type="image/png" href="./src/assets/wc.png">
|
|
10
|
+
<link href="https://fonts.googleapis.com/css?family=Titillium+Web:300,400,600,700" rel="stylesheet">
|
|
11
|
+
<link rel="stylesheet" href="./node_modules/igniteui-webcomponents/themes/light/material.css">
|
|
12
|
+
<link rel="stylesheet" href="./styles.css">
|
|
13
|
+
</head>
|
|
14
|
+
|
|
15
|
+
<body class="ig-scrollbar">
|
|
16
|
+
<app-root></app-root>
|
|
17
|
+
|
|
18
|
+
<script type="module" src="./src/index.ts"></script>
|
|
19
|
+
</body>
|
|
20
|
+
|
|
21
|
+
</html>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Route } from '@vaadin/router';
|
|
2
|
+
import './home/home.js';
|
|
3
|
+
import './not-found/not-found.js';
|
|
4
|
+
|
|
5
|
+
export const routes: Array<Route & { name?: string; icon?: string }> = [
|
|
6
|
+
{ path: '/', component: 'app-home', name: 'Home', icon: 'home' },
|
|
7
|
+
// The fallback route should always be after other alternatives.
|
|
8
|
+
{ path: '(.*)', component: 'app-not-found' },
|
|
9
|
+
];
|