igniteui-cli 15.2.2 → 15.3.1-beta.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.
- package/lib/commands/build.js +7 -12
- package/package.json +7 -7
- 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 +2 -0
- 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 +0 -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-grids/references/grid-migration.md +322 -0
- package/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-theming/SKILL.md +1 -1
- package/templates/react/igr-ts/projects/_base/files/package.json +1 -0
- 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/grid-lite-to-igr-grid-migration/SKILL.md +274 -0
- 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/ai-config/files/skills/igniteui-react-generate-from-image-design/reference/gotchas.md +2 -2
- 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/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/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-migrate-grid-lite-to-premium/SKILL.md +446 -0
- 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/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
|
@@ -11,17 +11,19 @@
|
|
|
11
11
|
- [Package Requirements](#package-requirements)
|
|
12
12
|
- [Import Patterns](#import-patterns)
|
|
13
13
|
|
|
14
|
+
> **For component API details** (props, events, slots, examples), call `get_doc` with `'react'` and the doc name from `list_components` results. Use `search_api` for specific property lookup.
|
|
15
|
+
|
|
14
16
|
## Dashboard & Layout Components
|
|
15
17
|
|
|
16
|
-
| UI Pattern | Ignite UI Component |
|
|
17
|
-
|
|
18
|
-
| Top navigation bar | `IgrNavbar` |
|
|
19
|
-
| Side navigation | `IgrNavDrawer` |
|
|
20
|
-
| Content cards/panels | `IgrCard` |
|
|
21
|
-
| Tabbed content | `IgrTabs` + `IgrTab` |
|
|
22
|
-
| Accordion sections | `IgrAccordion` |
|
|
23
|
-
| Split layouts | `IgrSplitter` |
|
|
24
|
-
| Tile dashboard | `IgrTileManager` |
|
|
18
|
+
| UI Pattern | Ignite UI Component |
|
|
19
|
+
|---|---|
|
|
20
|
+
| Top navigation bar | `IgrNavbar` |
|
|
21
|
+
| Side navigation | `IgrNavDrawer` |
|
|
22
|
+
| Content cards/panels | `IgrCard` |
|
|
23
|
+
| Tabbed content | `IgrTabs` + `IgrTab` |
|
|
24
|
+
| Accordion sections | `IgrAccordion` |
|
|
25
|
+
| Split layouts | `IgrSplitter` |
|
|
26
|
+
| Tile dashboard | `IgrTileManager` |
|
|
25
27
|
|
|
26
28
|
Decision rule:
|
|
27
29
|
|
|
@@ -29,33 +31,17 @@ Decision rule:
|
|
|
29
31
|
- Use `IgrNavDrawer` for a sidebar or side-navigation panel when drawer structure and behavior match the screenshot. Configure open and mini behavior according to whether the design shows fixed, collapsible, or icon-only navigation. Use a plain `<aside>` when a static custom sidebar matches the screenshot better.
|
|
30
32
|
- Use `IgrTabs` for a horizontal tab strip when the screenshot clearly shows tabbed state switching. Use label-only tabs for routed navigation and inline tab content for local view switching.
|
|
31
33
|
|
|
32
|
-
Component decision matrix (by visual pattern, domain-neutral):
|
|
33
|
-
|
|
34
|
-
| Visual Pattern | Recommended Component | Notes |
|
|
35
|
-
|---|---|---|
|
|
36
|
-
| Repeated rows with icon/text/action | `IgrList` | Use when the row anatomy and interaction model match. Compose the row content with React children and the documented slots. Use native `<ul>/<li>` or custom containers when that is a closer visual fit |
|
|
37
|
-
| Spreadsheet-like editable or sortable table | `IgrGridLite` or `IgrGrid` | Use only when content is truly tabular. Prefer `IgrGridLite` for lightweight MIT cases and `IgrGrid` when advanced grid features are required |
|
|
38
|
-
| Hierarchical or tree-structured table | `IgrTreeGrid` or `IgrTree` | Use `IgrTreeGrid` for hierarchical tables and `IgrTree` for tree-style navigation or nested lists |
|
|
39
|
-
| Content blocks / summary cards | `IgrCard` | Use when card chrome helps match the panel shape and structure. Use `IgrCardHeader`, `IgrCardContent`, and `IgrCardActions`, or plain `<div>` containers for flat or highly custom tiles |
|
|
40
|
-
| Any text input field | `IgrInput` | Use when the input anatomy matches the screenshot, including search fields and inline editors. Apply CSS to match the screenshot's border/radius style |
|
|
41
|
-
| Dropdown or select | `IgrSelect` | Use when the screenshot clearly shows select/dropdown behavior |
|
|
42
|
-
| Form fields with labels and inputs | `IgrInput`, `IgrSelect`, `IgrCombo`, `IgrDatePicker`, `IgrDateTimeInput` | Cover text, select, combo, and date/time inputs |
|
|
43
|
-
| Multi-step form / wizard | `IgrStepper` | Use when a sequence of steps is visually present |
|
|
44
|
-
| Filter chips / tag inputs | `IgrChip` | Use when chip anatomy matches status badges, filter tags, or removable labels in the screenshot |
|
|
45
|
-
| Calendar or date picker as a primary view element | `IgrCalendar`, `IgrDatePicker`, `IgrDateRangePicker` | Use when scheduling or date selection is the core UI |
|
|
46
|
-
| Top icon/action bar | `IgrNavbar` with `IgrButton` / `IgrIconButton` | Use when a navbar structure matches the screenshot; use plain icon buttons or custom containers when that is a closer fit |
|
|
47
|
-
|
|
48
34
|
## Chart Components
|
|
49
35
|
|
|
50
|
-
| UI Pattern | Ignite UI Component |
|
|
51
|
-
|
|
52
|
-
| Area chart | `IgrCategoryChart` |
|
|
53
|
-
| Line chart | `IgrCategoryChart` |
|
|
54
|
-
| Column chart | `IgrCategoryChart` |
|
|
55
|
-
| Sparkline (mini chart) | `IgrSparkline` or `IgrDataChart` |
|
|
56
|
-
| Pie/donut chart | `IgrPieChart` |
|
|
57
|
-
| Financial chart | `IgrFinancialChart` |
|
|
58
|
-
| Complex multi-series | `IgrDataChart` |
|
|
36
|
+
| UI Pattern | Ignite UI Component |
|
|
37
|
+
|---|---|
|
|
38
|
+
| Area chart | `IgrCategoryChart` |
|
|
39
|
+
| Line chart | `IgrCategoryChart` |
|
|
40
|
+
| Column chart | `IgrCategoryChart` |
|
|
41
|
+
| Sparkline (mini chart) | `IgrSparkline` or `IgrDataChart` |
|
|
42
|
+
| Pie/donut chart | `IgrPieChart` |
|
|
43
|
+
| Financial chart | `IgrFinancialChart` |
|
|
44
|
+
| Complex multi-series | `IgrDataChart` |
|
|
59
45
|
|
|
60
46
|
Decision rule:
|
|
61
47
|
|
|
@@ -65,17 +51,17 @@ Decision rule:
|
|
|
65
51
|
|
|
66
52
|
## Data Display Components
|
|
67
53
|
|
|
68
|
-
| UI Pattern | Ignite UI Component |
|
|
69
|
-
|
|
70
|
-
| Item list | `IgrList` |
|
|
71
|
-
| User avatar | `IgrAvatar` |
|
|
72
|
-
| Status badge | `IgrBadge` |
|
|
73
|
-
| Icons | `IgrIcon` |
|
|
74
|
-
| Progress bar | `IgrLinearProgress` |
|
|
75
|
-
| Circular progress | `IgrCircularProgress` |
|
|
76
|
-
| Flat data grid | `IgrGridLite` or `IgrGrid` |
|
|
77
|
-
| Hierarchical/tree data grid | `IgrTreeGrid` |
|
|
78
|
-
| Filter/tag chips | `IgrChip` |
|
|
54
|
+
| UI Pattern | Ignite UI Component |
|
|
55
|
+
|---|---|
|
|
56
|
+
| Item list | `IgrList` |
|
|
57
|
+
| User avatar | `IgrAvatar` |
|
|
58
|
+
| Status badge | `IgrBadge` |
|
|
59
|
+
| Icons | `IgrIcon` |
|
|
60
|
+
| Progress bar | `IgrLinearProgress` |
|
|
61
|
+
| Circular progress | `IgrCircularProgress` |
|
|
62
|
+
| Flat data grid | `IgrGridLite` or `IgrGrid` |
|
|
63
|
+
| Hierarchical/tree data grid | `IgrTreeGrid` |
|
|
64
|
+
| Filter/tag chips | `IgrChip` |
|
|
79
65
|
|
|
80
66
|
Decision rule:
|
|
81
67
|
|
|
@@ -86,44 +72,44 @@ Decision rule:
|
|
|
86
72
|
|
|
87
73
|
## Form & Input Components
|
|
88
74
|
|
|
89
|
-
| UI Pattern | Ignite UI Component |
|
|
90
|
-
|
|
91
|
-
| Text input | `IgrInput` |
|
|
92
|
-
| Dropdown select | `IgrSelect` |
|
|
93
|
-
| Searchable multi-select | `IgrCombo` |
|
|
94
|
-
| Date picker | `IgrDatePicker` |
|
|
95
|
-
| Date/time input | `IgrDateTimeInput` |
|
|
96
|
-
| Toggle switch | `IgrSwitch` |
|
|
97
|
-
| Checkbox | `IgrCheckbox` |
|
|
98
|
-
| Radio button group | `IgrRadioGroup` + `IgrRadio` |
|
|
99
|
-
| Slider | `IgrSlider` |
|
|
100
|
-
| Multi-step wizard | `IgrStepper` |
|
|
101
|
-
| Chip filter bar | `IgrChip` collection in a flex wrapper |
|
|
75
|
+
| UI Pattern | Ignite UI Component |
|
|
76
|
+
|---|---|
|
|
77
|
+
| Text input | `IgrInput` |
|
|
78
|
+
| Dropdown select | `IgrSelect` |
|
|
79
|
+
| Searchable multi-select | `IgrCombo` |
|
|
80
|
+
| Date picker | `IgrDatePicker` |
|
|
81
|
+
| Date/time input | `IgrDateTimeInput` |
|
|
82
|
+
| Toggle switch | `IgrSwitch` |
|
|
83
|
+
| Checkbox | `IgrCheckbox` |
|
|
84
|
+
| Radio button group | `IgrRadioGroup` + `IgrRadio` |
|
|
85
|
+
| Slider | `IgrSlider` |
|
|
86
|
+
| Multi-step wizard | `IgrStepper` |
|
|
87
|
+
| Chip filter bar | `IgrChip` collection in a flex wrapper |
|
|
102
88
|
|
|
103
89
|
## Calendar & Scheduling Components
|
|
104
90
|
|
|
105
|
-
| UI Pattern | Ignite UI Component |
|
|
106
|
-
|
|
107
|
-
| Calendar view | `IgrCalendar` |
|
|
108
|
-
| Date range picker | `IgrDateRangePicker` |
|
|
109
|
-
| Month/year picker | `IgrCalendar` |
|
|
91
|
+
| UI Pattern | Ignite UI Component |
|
|
92
|
+
|---|---|
|
|
93
|
+
| Calendar view | `IgrCalendar` |
|
|
94
|
+
| Date range picker | `IgrDateRangePicker` |
|
|
95
|
+
| Month/year picker | `IgrCalendar` |
|
|
110
96
|
|
|
111
97
|
## Map Components
|
|
112
98
|
|
|
113
|
-
| UI Pattern | Ignite UI Component |
|
|
114
|
-
|
|
115
|
-
| World map | `IgrGeographicMap` |
|
|
116
|
-
| Map markers | `IgrGeographicSymbolSeries` |
|
|
117
|
-
| Bubble overlay | `IgrGeographicProportionalSymbolSeries` |
|
|
118
|
-
| Shape regions | `IgrGeographicShapeSeries` |
|
|
99
|
+
| UI Pattern | Ignite UI Component |
|
|
100
|
+
|---|---|
|
|
101
|
+
| World map | `IgrGeographicMap` |
|
|
102
|
+
| Map markers | `IgrGeographicSymbolSeries` |
|
|
103
|
+
| Bubble overlay | `IgrGeographicProportionalSymbolSeries` |
|
|
104
|
+
| Shape regions | `IgrGeographicShapeSeries` |
|
|
119
105
|
|
|
120
106
|
## Gauge Components
|
|
121
107
|
|
|
122
|
-
| UI Pattern | Ignite UI Component |
|
|
123
|
-
|
|
124
|
-
| Linear gauge | `IgrLinearGauge` |
|
|
125
|
-
| Radial gauge | `IgrRadialGauge` |
|
|
126
|
-
| Bullet graph | `IgrBulletGraph` |
|
|
108
|
+
| UI Pattern | Ignite UI Component |
|
|
109
|
+
|---|---|
|
|
110
|
+
| Linear gauge | `IgrLinearGauge` |
|
|
111
|
+
| Radial gauge | `IgrRadialGauge` |
|
|
112
|
+
| Bullet graph | `IgrBulletGraph` |
|
|
127
113
|
|
|
128
114
|
## Package Requirements
|
|
129
115
|
|
|
@@ -139,8 +139,8 @@ For core UI component theming, prefer `create_component_theme` and apply the ret
|
|
|
139
139
|
Override the drawer width using the nav drawer CSS custom properties measured from the design image:
|
|
140
140
|
```css
|
|
141
141
|
igc-nav-drawer {
|
|
142
|
-
--
|
|
143
|
-
--
|
|
142
|
+
--menu-full-width: <extracted-sidebar-width>;
|
|
143
|
+
--menu-mini-width: <extracted-mini-drawer-width>;
|
|
144
144
|
}
|
|
145
145
|
```
|
|
146
146
|
|
|
@@ -30,8 +30,8 @@ class EmptyIgrTsProject extends _base_with_home_1.BaseWithHomeIgrTsProject {
|
|
|
30
30
|
constructor() {
|
|
31
31
|
super(...arguments);
|
|
32
32
|
this.id = "empty";
|
|
33
|
-
this.name = "Empty
|
|
34
|
-
this.description = "
|
|
33
|
+
this.name = "Empty Project";
|
|
34
|
+
this.description = "Starter project with routing and a home page";
|
|
35
35
|
this.dependencies = [];
|
|
36
36
|
this.framework = "react";
|
|
37
37
|
this.projectType = "igr-ts";
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
.app {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-flow: column nowrap;
|
|
4
|
+
height: 100%;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.app__navbar {
|
|
9
|
+
display: flex;
|
|
10
|
+
align-items: center;
|
|
11
|
+
flex: 0 0 auto;
|
|
12
|
+
height: 56px;
|
|
13
|
+
padding: 0 16px;
|
|
14
|
+
background: #239ef0;
|
|
15
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, .24);
|
|
16
|
+
box-sizing: border-box;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.app__title {
|
|
20
|
+
margin: 0 0 0 16px;
|
|
21
|
+
font-size: 1.25rem;
|
|
22
|
+
font-weight: 600;
|
|
23
|
+
line-height: 1;
|
|
24
|
+
color: #000;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.app__menu-button {
|
|
28
|
+
display: inline-flex;
|
|
29
|
+
align-items: center;
|
|
30
|
+
justify-content: center;
|
|
31
|
+
width: 40px;
|
|
32
|
+
height: 40px;
|
|
33
|
+
padding: 0;
|
|
34
|
+
color: #000;
|
|
35
|
+
border: 0;
|
|
36
|
+
background: transparent;
|
|
37
|
+
cursor: pointer;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.app__menu-button igc-icon {
|
|
41
|
+
font-size: 24px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.app__body {
|
|
45
|
+
display: flex;
|
|
46
|
+
flex: 1 1 auto;
|
|
47
|
+
min-height: 0;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.app__drawer {
|
|
51
|
+
flex: 0 0 auto;
|
|
52
|
+
height: 100%;
|
|
53
|
+
--menu-full-width: 280px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
igc-nav-drawer-item::part(base) {
|
|
57
|
+
min-height: 48px;
|
|
58
|
+
color: #2d2d2d;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
igc-nav-drawer-item[active]::part(base) {
|
|
62
|
+
background: #e0f2ff;
|
|
63
|
+
color: #0075d2;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
igc-nav-drawer-item[active] igc-icon {
|
|
67
|
+
color: #0075d2;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
igc-nav-drawer-item:not([active]) igc-icon {
|
|
71
|
+
color: #2d2d2d;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.app__content {
|
|
75
|
+
flex: 1 1 auto;
|
|
76
|
+
display: flex;
|
|
77
|
+
flex-flow: row nowrap;
|
|
78
|
+
justify-content: center;
|
|
79
|
+
align-items: stretch;
|
|
80
|
+
min-width: 0;
|
|
81
|
+
overflow: auto;
|
|
82
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { useEffect, useMemo, useState } from "react";
|
|
2
|
+
import { Outlet, useLocation, useNavigate } from "react-router-dom";
|
|
3
|
+
import {
|
|
4
|
+
IgrIcon,
|
|
5
|
+
IgrNavDrawer,
|
|
6
|
+
IgrNavDrawerItem,
|
|
7
|
+
registerIcon,
|
|
8
|
+
} from "igniteui-react";
|
|
9
|
+
import { configureTheme } from "igniteui-webcomponents";
|
|
10
|
+
import { routes } from "./app-routes";
|
|
11
|
+
import "igniteui-webcomponents/themes/light/material.css";
|
|
12
|
+
import "./app.css";
|
|
13
|
+
|
|
14
|
+
configureTheme('material', 'light');
|
|
15
|
+
|
|
16
|
+
const materialIcons = [
|
|
17
|
+
['home', 'action/svg/production/ic_home_24px.svg'],
|
|
18
|
+
['menu', 'navigation/svg/production/ic_menu_24px.svg'],
|
|
19
|
+
['apps', 'navigation/svg/production/ic_apps_24px.svg'],
|
|
20
|
+
['code', 'action/svg/production/ic_code_24px.svg'],
|
|
21
|
+
['build', 'action/svg/production/ic_build_24px.svg'],
|
|
22
|
+
['palette', 'image/svg/production/ic_palette_24px.svg'],
|
|
23
|
+
] as const;
|
|
24
|
+
|
|
25
|
+
materialIcons.forEach(([name, path]) =>
|
|
26
|
+
registerIcon(name, `https://unpkg.com/material-design-icons@3.0.1/${path}`, "material")
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
export default function App() {
|
|
30
|
+
const name = "$(name)";
|
|
31
|
+
const location = useLocation();
|
|
32
|
+
const navigate = useNavigate();
|
|
33
|
+
const [drawerOpen, setDrawerOpen] = useState(true);
|
|
34
|
+
const [drawerPosition, setDrawerPosition] = useState<"relative" | "start">("relative");
|
|
35
|
+
|
|
36
|
+
const visibleRoutes = useMemo(() => {
|
|
37
|
+
return routes.filter((route) => route.path && route.text);
|
|
38
|
+
}, []);
|
|
39
|
+
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
const mediaQuery = window.matchMedia("(min-width: 1025px)");
|
|
42
|
+
const updateDrawerState = () => {
|
|
43
|
+
setDrawerOpen(mediaQuery.matches);
|
|
44
|
+
setDrawerPosition(mediaQuery.matches ? "relative" : "start");
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
updateDrawerState();
|
|
48
|
+
mediaQuery.addEventListener("change", updateDrawerState);
|
|
49
|
+
|
|
50
|
+
return () => mediaQuery.removeEventListener("change", updateDrawerState);
|
|
51
|
+
}, []);
|
|
52
|
+
|
|
53
|
+
const handleRouteClick = (path: string) => {
|
|
54
|
+
navigate(path);
|
|
55
|
+
|
|
56
|
+
if (window.matchMedia("(max-width: 1024px)").matches) {
|
|
57
|
+
setDrawerOpen(false);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
return (
|
|
62
|
+
<div className="app">
|
|
63
|
+
<header className="app__navbar">
|
|
64
|
+
<button
|
|
65
|
+
className="app__menu-button"
|
|
66
|
+
type="button"
|
|
67
|
+
aria-label="Toggle navigation"
|
|
68
|
+
onClick={() => setDrawerOpen((open) => !open)}
|
|
69
|
+
>
|
|
70
|
+
<IgrIcon name="menu" collection="material" />
|
|
71
|
+
</button>
|
|
72
|
+
<h1 className="app__title">{name}</h1>
|
|
73
|
+
</header>
|
|
74
|
+
<div className="app__body">
|
|
75
|
+
<IgrNavDrawer
|
|
76
|
+
className="app__drawer"
|
|
77
|
+
open={drawerOpen}
|
|
78
|
+
position={drawerPosition}
|
|
79
|
+
>
|
|
80
|
+
{visibleRoutes.map((route) => (
|
|
81
|
+
<IgrNavDrawerItem
|
|
82
|
+
key={route.path}
|
|
83
|
+
active={location.pathname === route.path}
|
|
84
|
+
onClick={() => handleRouteClick(route.path)}
|
|
85
|
+
>
|
|
86
|
+
<IgrIcon
|
|
87
|
+
slot="icon"
|
|
88
|
+
name={route.icon || "home"}
|
|
89
|
+
collection="material"
|
|
90
|
+
style={{
|
|
91
|
+
color: location.pathname === route.path ? "#0075D2" : undefined,
|
|
92
|
+
}}
|
|
93
|
+
/>
|
|
94
|
+
<span slot="content">{route.text}</span>
|
|
95
|
+
</IgrNavDrawerItem>
|
|
96
|
+
))}
|
|
97
|
+
</IgrNavDrawer>
|
|
98
|
+
<main className="app__content">
|
|
99
|
+
<Outlet />
|
|
100
|
+
</main>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
);
|
|
104
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import logo from "/logo.svg";
|
|
2
|
+
import { IgrIcon } from "igniteui-react";
|
|
3
|
+
import styles from "./style.module.css";
|
|
4
|
+
|
|
5
|
+
export default function App() {
|
|
6
|
+
return (
|
|
7
|
+
<main className={styles.home}>
|
|
8
|
+
<div className={styles.intro}>
|
|
9
|
+
<h1 className={styles.header}>Welcome to Ignite UI for React!</h1>
|
|
10
|
+
<p className={styles.description}>
|
|
11
|
+
A routed application shell with a responsive side navigation drawer and curated Ignite UI resources.
|
|
12
|
+
</p>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<img src={logo} className={styles.logo} alt="Ignite UI for React" />
|
|
16
|
+
|
|
17
|
+
<div className={styles.resources} role="navigation" aria-label="Ignite UI resources">
|
|
18
|
+
<a
|
|
19
|
+
className={styles.resource}
|
|
20
|
+
target="_blank"
|
|
21
|
+
rel="noopener noreferrer"
|
|
22
|
+
href="https://www.infragistics.com/products/ignite-ui-react"
|
|
23
|
+
>
|
|
24
|
+
<IgrIcon className={styles.resourceIcon} name="apps" collection="material" />
|
|
25
|
+
<span>
|
|
26
|
+
<strong>Component Demos</strong>
|
|
27
|
+
<small>Browse React components and examples</small>
|
|
28
|
+
</span>
|
|
29
|
+
</a>
|
|
30
|
+
<a
|
|
31
|
+
className={styles.resource}
|
|
32
|
+
target="_blank"
|
|
33
|
+
rel="noopener noreferrer"
|
|
34
|
+
href="https://github.com/IgniteUI/igniteui-react"
|
|
35
|
+
>
|
|
36
|
+
<IgrIcon className={styles.resourceIcon} name="code" collection="material" />
|
|
37
|
+
<span>
|
|
38
|
+
<strong>React Repository</strong>
|
|
39
|
+
<small>Explore Ignite UI for React on GitHub</small>
|
|
40
|
+
</span>
|
|
41
|
+
</a>
|
|
42
|
+
<a
|
|
43
|
+
className={styles.resource}
|
|
44
|
+
target="_blank"
|
|
45
|
+
rel="noopener noreferrer"
|
|
46
|
+
href="https://github.com/IgniteUI/igniteui-cli"
|
|
47
|
+
>
|
|
48
|
+
<IgrIcon className={styles.resourceIcon} name="build" collection="material" />
|
|
49
|
+
<span>
|
|
50
|
+
<strong>Ignite UI CLI</strong>
|
|
51
|
+
<small>Review the CLI source and project tooling</small>
|
|
52
|
+
</span>
|
|
53
|
+
</a>
|
|
54
|
+
<a
|
|
55
|
+
className={styles.resource}
|
|
56
|
+
target="_blank"
|
|
57
|
+
rel="noopener noreferrer"
|
|
58
|
+
href="https://www.figma.com/@infragistics"
|
|
59
|
+
>
|
|
60
|
+
<IgrIcon className={styles.resourceIcon} name="palette" collection="material" />
|
|
61
|
+
<span>
|
|
62
|
+
<strong>Figma UI Kit</strong>
|
|
63
|
+
<small>Open Infragistics design resources</small>
|
|
64
|
+
</span>
|
|
65
|
+
</a>
|
|
66
|
+
</div>
|
|
67
|
+
</main>
|
|
68
|
+
);
|
|
69
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
:local(.home) {
|
|
2
|
+
width: 100%;
|
|
3
|
+
max-width: 920px;
|
|
4
|
+
margin: auto;
|
|
5
|
+
padding: 48px 24px;
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
font-family: "Titillium Web", "Segoe UI", Arial, sans-serif;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
:local(.intro) {
|
|
11
|
+
max-width: 720px;
|
|
12
|
+
margin: 0 auto 24px;
|
|
13
|
+
text-align: center;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:local(.header) {
|
|
17
|
+
margin: 0 0 12px;
|
|
18
|
+
color: #09f;
|
|
19
|
+
font-size: 3rem;
|
|
20
|
+
font-weight: 600;
|
|
21
|
+
line-height: 1.2;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:local(.description) {
|
|
25
|
+
margin: 0;
|
|
26
|
+
color: #000;
|
|
27
|
+
font-size: 1.125rem;
|
|
28
|
+
line-height: 1.5;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
:local(.logo) {
|
|
32
|
+
display: block;
|
|
33
|
+
width: 500px;
|
|
34
|
+
height: 350px;
|
|
35
|
+
margin: 0 auto 28px;
|
|
36
|
+
max-width: 100%;
|
|
37
|
+
object-fit: contain;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
:local(.resources) {
|
|
41
|
+
display: grid;
|
|
42
|
+
grid-template-columns: repeat(2, 300px);
|
|
43
|
+
justify-content: center;
|
|
44
|
+
margin: 0 auto;
|
|
45
|
+
gap: 4px 64px;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:local(.resource) {
|
|
49
|
+
display: flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
min-height: 64px;
|
|
52
|
+
padding: 6px 0;
|
|
53
|
+
color: rgba(0, 0, 0, .74);
|
|
54
|
+
text-align: left;
|
|
55
|
+
text-decoration: none;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:local(.resource):hover strong {
|
|
59
|
+
text-decoration: underline;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
:local(.resourceIcon) {
|
|
63
|
+
flex: 0 0 28px;
|
|
64
|
+
margin-right: 16px;
|
|
65
|
+
color: #09f;
|
|
66
|
+
font-size: 28px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
:local(.resource) strong,
|
|
70
|
+
:local(.resource) small {
|
|
71
|
+
display: block;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
:local(.resource) strong {
|
|
75
|
+
margin-bottom: 2px;
|
|
76
|
+
color: #731963;
|
|
77
|
+
font-size: 1rem;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
:local(.resource) small {
|
|
81
|
+
color: #000;
|
|
82
|
+
font-size: 0.875rem;
|
|
83
|
+
line-height: 1.4;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@media (max-width: 768px) {
|
|
87
|
+
:local(.home) {
|
|
88
|
+
padding: 32px 16px;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
:local(.header) {
|
|
92
|
+
font-size: 2.25rem;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
:local(.logo) {
|
|
96
|
+
width: 100%;
|
|
97
|
+
height: 240px;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
:local(.resources) {
|
|
101
|
+
grid-template-columns: minmax(0, 300px);
|
|
102
|
+
justify-content: center;
|
|
103
|
+
gap: 4px;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ProjectTemplate } from "@igniteui/cli-core";
|
|
2
2
|
import { BaseWithHomeIgrTsProject } from "../_base_with_home";
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class SideNavIgrTsProject extends BaseWithHomeIgrTsProject implements ProjectTemplate {
|
|
4
4
|
id: string;
|
|
5
5
|
name: string;
|
|
6
6
|
description: string;
|
|
@@ -11,5 +11,5 @@ export declare class TopNavIgrTsProject extends BaseWithHomeIgrTsProject impleme
|
|
|
11
11
|
isHidden: boolean;
|
|
12
12
|
get templatePaths(): string[];
|
|
13
13
|
}
|
|
14
|
-
declare const _default:
|
|
14
|
+
declare const _default: SideNavIgrTsProject;
|
|
15
15
|
export default _default;
|
|
@@ -23,15 +23,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.SideNavIgrTsProject = void 0;
|
|
27
27
|
const path = __importStar(require("path"));
|
|
28
28
|
const _base_with_home_1 = require("../_base_with_home");
|
|
29
|
-
class
|
|
29
|
+
class SideNavIgrTsProject extends _base_with_home_1.BaseWithHomeIgrTsProject {
|
|
30
30
|
constructor() {
|
|
31
31
|
super(...arguments);
|
|
32
|
-
this.id = "
|
|
33
|
-
this.name = "
|
|
34
|
-
this.description = "Project structure with
|
|
32
|
+
this.id = "side-nav";
|
|
33
|
+
this.name = "Side navigation default";
|
|
34
|
+
this.description = "Project structure with side navigation drawer";
|
|
35
35
|
this.dependencies = [];
|
|
36
36
|
this.framework = "react";
|
|
37
37
|
this.projectType = "igr-ts";
|
|
@@ -42,5 +42,5 @@ class TopNavIgrTsProject extends _base_with_home_1.BaseWithHomeIgrTsProject {
|
|
|
42
42
|
return [...super.templatePaths, path.join(__dirname, "files")];
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
exports.
|
|
46
|
-
exports.default = new
|
|
45
|
+
exports.SideNavIgrTsProject = SideNavIgrTsProject;
|
|
46
|
+
exports.default = new SideNavIgrTsProject();
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
+
<title>Ignite UI for React</title>
|
|
8
|
+
<link href="https://fonts.googleapis.com/css?family=Titillium+Web:300,400,600,700" rel="stylesheet">
|
|
9
|
+
<link rel="stylesheet" href="./styles.css">
|
|
10
|
+
<!-- Facebook JS SDK — required only when facebook is configured in external-auth-config.ts.
|
|
11
|
+
Remove this script if you are not using Facebook login. -->
|
|
12
|
+
<script async defer crossorigin="anonymous"
|
|
13
|
+
src="https://connect.facebook.net/en_US/sdk.js"></script>
|
|
14
|
+
</head>
|
|
15
|
+
<body>
|
|
16
|
+
<div id="root"></div>
|
|
17
|
+
</body>
|
|
18
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
19
|
+
</html>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import Home from './home/home';
|
|
2
|
+
import Profile from './authentication/pages/Profile';
|
|
3
|
+
import RedirectGoogle from './authentication/pages/RedirectGoogle';
|
|
4
|
+
import RedirectMicrosoft from './authentication/pages/RedirectMicrosoft';
|
|
5
|
+
import RedirectFacebook from './authentication/pages/RedirectFacebook';
|
|
6
|
+
import { AuthGuard } from './authentication/AuthGuard';
|
|
7
|
+
|
|
8
|
+
export const routes = [
|
|
9
|
+
{ path: '/', element: <Home />, text: 'Home', icon: 'home' },
|
|
10
|
+
{
|
|
11
|
+
path: '/auth/profile',
|
|
12
|
+
element: (
|
|
13
|
+
<AuthGuard>
|
|
14
|
+
<Profile />
|
|
15
|
+
</AuthGuard>
|
|
16
|
+
),
|
|
17
|
+
text: 'Profile',
|
|
18
|
+
icon: 'account_circle',
|
|
19
|
+
requiresAuth: true
|
|
20
|
+
},
|
|
21
|
+
{ path: '/auth/redirect-google', element: <RedirectGoogle /> },
|
|
22
|
+
{ path: '/auth/redirect-microsoft', element: <RedirectMicrosoft /> },
|
|
23
|
+
{ path: '/auth/redirect-facebook', element: <RedirectFacebook /> },
|
|
24
|
+
];
|