@instructure/platform-widget-dashboard 0.1.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.
Files changed (117) hide show
  1. package/README.md +365 -0
  2. package/dist/components/CoursesTab.canvas.d.ts +5 -0
  3. package/dist/components/CoursesTab.canvas.d.ts.map +1 -0
  4. package/dist/components/CoursesTabWrapper.d.ts +5 -0
  5. package/dist/components/CoursesTabWrapper.d.ts.map +1 -0
  6. package/dist/components/DashboardNotifications.d.ts +5 -0
  7. package/dist/components/DashboardNotifications.d.ts.map +1 -0
  8. package/dist/components/DashboardTab.d.ts +5 -0
  9. package/dist/components/DashboardTab.d.ts.map +1 -0
  10. package/dist/components/DashboardTabs.d.ts +5 -0
  11. package/dist/components/DashboardTabs.d.ts.map +1 -0
  12. package/dist/components/EnrollmentInvitation.d.ts +22 -0
  13. package/dist/components/EnrollmentInvitation.d.ts.map +1 -0
  14. package/dist/components/FeedbackQuestionTile.d.ts +5 -0
  15. package/dist/components/FeedbackQuestionTile.d.ts.map +1 -0
  16. package/dist/components/NotificationAlert.d.ts +19 -0
  17. package/dist/components/NotificationAlert.d.ts.map +1 -0
  18. package/dist/components/WidgetDashboardContainer.d.ts +5 -0
  19. package/dist/components/WidgetDashboardContainer.d.ts.map +1 -0
  20. package/dist/components/WidgetGrid.d.ts +10 -0
  21. package/dist/components/WidgetGrid.d.ts.map +1 -0
  22. package/dist/components/WidgetRenderer.d.ts +8 -0
  23. package/dist/components/WidgetRenderer.d.ts.map +1 -0
  24. package/dist/components/shared/CourseCode.d.ts +18 -0
  25. package/dist/components/shared/CourseCode.d.ts.map +1 -0
  26. package/dist/components/shared/CourseFilterSelect.d.ts +14 -0
  27. package/dist/components/shared/CourseFilterSelect.d.ts.map +1 -0
  28. package/dist/components/shared/CourseName.d.ts +9 -0
  29. package/dist/components/shared/CourseName.d.ts.map +1 -0
  30. package/dist/components/shared/CourseWorkFilters.d.ts +23 -0
  31. package/dist/components/shared/CourseWorkFilters.d.ts.map +1 -0
  32. package/dist/components/shared/StatisticsCard.d.ts +10 -0
  33. package/dist/components/shared/StatisticsCard.d.ts.map +1 -0
  34. package/dist/components/shared/StatisticsCardsGrid.d.ts +14 -0
  35. package/dist/components/shared/StatisticsCardsGrid.d.ts.map +1 -0
  36. package/dist/components/shared/WidgetContextMenu.d.ts +12 -0
  37. package/dist/components/shared/WidgetContextMenu.d.ts.map +1 -0
  38. package/dist/components/widgets/AnnouncementsWidget/AnnouncementItem.d.ts +11 -0
  39. package/dist/components/widgets/AnnouncementsWidget/AnnouncementItem.d.ts.map +1 -0
  40. package/dist/components/widgets/AnnouncementsWidget/AnnouncementsWidget.d.ts +6 -0
  41. package/dist/components/widgets/AnnouncementsWidget/AnnouncementsWidget.d.ts.map +1 -0
  42. package/dist/components/widgets/AnnouncementsWidget/utils.d.ts +2 -0
  43. package/dist/components/widgets/AnnouncementsWidget/utils.d.ts.map +1 -0
  44. package/dist/components/widgets/CourseGradesWidget/CourseGradeCard.d.ts +6 -0
  45. package/dist/components/widgets/CourseGradesWidget/CourseGradeCard.d.ts.map +1 -0
  46. package/dist/components/widgets/CourseGradesWidget/CourseGradesWidget.d.ts +6 -0
  47. package/dist/components/widgets/CourseGradesWidget/CourseGradesWidget.d.ts.map +1 -0
  48. package/dist/components/widgets/CourseWorkSummaryWidget/CourseWorkSummaryWidget.d.ts +6 -0
  49. package/dist/components/widgets/CourseWorkSummaryWidget/CourseWorkSummaryWidget.d.ts.map +1 -0
  50. package/dist/components/widgets/CourseWorkSummaryWidget/index.d.ts +2 -0
  51. package/dist/components/widgets/CourseWorkSummaryWidget/index.d.ts.map +1 -0
  52. package/dist/components/widgets/CourseWorkWidget/CourseWorkWidget.d.ts +6 -0
  53. package/dist/components/widgets/CourseWorkWidget/CourseWorkWidget.d.ts.map +1 -0
  54. package/dist/components/widgets/CourseWorkWidget/utils.d.ts +15 -0
  55. package/dist/components/widgets/CourseWorkWidget/utils.d.ts.map +1 -0
  56. package/dist/components/widgets/InboxWidget/InboxWidget.d.ts +6 -0
  57. package/dist/components/widgets/InboxWidget/InboxWidget.d.ts.map +1 -0
  58. package/dist/components/widgets/InboxWidget/MessageItem.d.ts +9 -0
  59. package/dist/components/widgets/InboxWidget/MessageItem.d.ts.map +1 -0
  60. package/dist/components/widgets/PeopleWidget/PeopleWidget.d.ts +6 -0
  61. package/dist/components/widgets/PeopleWidget/PeopleWidget.d.ts.map +1 -0
  62. package/dist/components/widgets/PeopleWidget/index.d.ts +2 -0
  63. package/dist/components/widgets/PeopleWidget/index.d.ts.map +1 -0
  64. package/dist/components/widgets/ProgressOverviewWidget/CourseProgressBar.d.ts +19 -0
  65. package/dist/components/widgets/ProgressOverviewWidget/CourseProgressBar.d.ts.map +1 -0
  66. package/dist/components/widgets/ProgressOverviewWidget/CourseProgressItem.d.ts +9 -0
  67. package/dist/components/widgets/ProgressOverviewWidget/CourseProgressItem.d.ts.map +1 -0
  68. package/dist/components/widgets/ProgressOverviewWidget/ProgressOverviewWidget.d.ts +6 -0
  69. package/dist/components/widgets/ProgressOverviewWidget/ProgressOverviewWidget.d.ts.map +1 -0
  70. package/dist/components/widgets/ProgressOverviewWidget/index.d.ts +2 -0
  71. package/dist/components/widgets/ProgressOverviewWidget/index.d.ts.map +1 -0
  72. package/dist/components/widgets/RecentGradesWidget/GradeItem.d.ts +6 -0
  73. package/dist/components/widgets/RecentGradesWidget/GradeItem.d.ts.map +1 -0
  74. package/dist/components/widgets/RecentGradesWidget/RecentGradesWidget.d.ts +6 -0
  75. package/dist/components/widgets/RecentGradesWidget/RecentGradesWidget.d.ts.map +1 -0
  76. package/dist/components/widgets/TemplateWidget/TemplateWidget.d.ts +25 -0
  77. package/dist/components/widgets/TemplateWidget/TemplateWidget.d.ts.map +1 -0
  78. package/dist/components/widgets/TemplateWidget/index.d.ts +3 -0
  79. package/dist/components/widgets/TemplateWidget/index.d.ts.map +1 -0
  80. package/dist/components/widgets/TodoListWidget/CreateTodoModal.d.ts +26 -0
  81. package/dist/components/widgets/TodoListWidget/CreateTodoModal.d.ts.map +1 -0
  82. package/dist/components/widgets/TodoListWidget/TodoItem.d.ts +9 -0
  83. package/dist/components/widgets/TodoListWidget/TodoItem.d.ts.map +1 -0
  84. package/dist/components/widgets/TodoListWidget/TodoListWidget.d.ts +6 -0
  85. package/dist/components/widgets/TodoListWidget/TodoListWidget.d.ts.map +1 -0
  86. package/dist/components/widgets/TodoListWidget/api.d.ts +43 -0
  87. package/dist/components/widgets/TodoListWidget/api.d.ts.map +1 -0
  88. package/dist/components/widgets/TodoListWidget/hooks/usePlannerItems.d.ts +23 -0
  89. package/dist/components/widgets/TodoListWidget/hooks/usePlannerItems.d.ts.map +1 -0
  90. package/dist/components/widgets/TodoListWidget/types.d.ts +63 -0
  91. package/dist/components/widgets/TodoListWidget/types.d.ts.map +1 -0
  92. package/dist/components/widgets/TodoListWidget/utils.d.ts +8 -0
  93. package/dist/components/widgets/TodoListWidget/utils.d.ts.map +1 -0
  94. package/dist/constants/pagination.d.ts +10 -0
  95. package/dist/constants/pagination.d.ts.map +1 -0
  96. package/dist/hooks/useProgressOverview.d.ts +26 -0
  97. package/dist/hooks/useProgressOverview.d.ts.map +1 -0
  98. package/dist/hooks/useResponsiveContext.d.ts +16 -0
  99. package/dist/hooks/useResponsiveContext.d.ts.map +1 -0
  100. package/dist/hooks/useSharedCourses.d.ts +20 -0
  101. package/dist/hooks/useSharedCourses.d.ts.map +1 -0
  102. package/dist/hooks/useWidgetConfig.d.ts +13 -0
  103. package/dist/hooks/useWidgetConfig.d.ts.map +1 -0
  104. package/dist/index.d.ts +11 -0
  105. package/dist/index.d.ts.map +1 -0
  106. package/dist/index.js +13387 -0
  107. package/dist/types/env.d.ts +54 -0
  108. package/dist/types/env.d.ts.map +1 -0
  109. package/dist/types/index.d.ts +3 -0
  110. package/dist/types/index.d.ts.map +1 -0
  111. package/dist/types/widget.d.ts +141 -0
  112. package/dist/types/widget.d.ts.map +1 -0
  113. package/dist/utils/graphql.d.ts +20 -0
  114. package/dist/utils/graphql.d.ts.map +1 -0
  115. package/dist/widgetRegistry.d.ts +4 -0
  116. package/dist/widgetRegistry.d.ts.map +1 -0
  117. package/package.json +86 -0
@@ -0,0 +1,54 @@
1
+ export interface ObservedUser {
2
+ id: string;
3
+ name: string;
4
+ avatar_url?: string | null;
5
+ }
6
+ export interface CurrentUser {
7
+ id: string;
8
+ display_name: string;
9
+ avatar_image_url: string;
10
+ }
11
+ export interface DashboardPreferences {
12
+ dashboard_view: string;
13
+ hide_dashcard_color_overlays: boolean;
14
+ custom_colors: Record<string, string>;
15
+ learner_dashboard_tab_selection?: 'dashboard' | 'courses';
16
+ widget_dashboard_config?: {
17
+ filters?: Record<string, Record<string, unknown>>;
18
+ layout?: {
19
+ columns: number;
20
+ widgets: Array<{
21
+ id: string;
22
+ type: string;
23
+ position: {
24
+ col: number;
25
+ row: number;
26
+ relative: number;
27
+ };
28
+ title: string;
29
+ }>;
30
+ };
31
+ };
32
+ }
33
+ export interface SharedCourseData {
34
+ courseId: string;
35
+ courseCode: string;
36
+ courseName: string;
37
+ currentGrade: number | null;
38
+ gradingScheme: 'percentage' | Array<[string, number]>;
39
+ lastUpdated: string;
40
+ }
41
+ export interface DashboardFeatures {
42
+ widget_dashboard_customization?: boolean;
43
+ }
44
+ export interface WidgetDashboardEnv {
45
+ preferences: DashboardPreferences;
46
+ observedUsersList: ObservedUser[];
47
+ canAddObservee: boolean;
48
+ currentUser: CurrentUser;
49
+ observedUserId?: string | null;
50
+ currentUserRoles: string[];
51
+ sharedCourseData: SharedCourseData[];
52
+ dashboardFeatures: DashboardFeatures;
53
+ }
54
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/types/env.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAA;IACtB,4BAA4B,EAAE,OAAO,CAAA;IACrC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,+BAA+B,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IACzD,uBAAuB,CAAC,EAAE;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QACjD,MAAM,CAAC,EAAE;YACP,OAAO,EAAE,MAAM,CAAA;YACf,OAAO,EAAE,KAAK,CAAC;gBACb,EAAE,EAAE,MAAM,CAAA;gBACV,IAAI,EAAE,MAAM,CAAA;gBACZ,QAAQ,EAAE;oBAAE,GAAG,EAAE,MAAM,CAAC;oBAAC,GAAG,EAAE,MAAM,CAAC;oBAAC,QAAQ,EAAE,MAAM,CAAA;iBAAE,CAAA;gBACxD,KAAK,EAAE,MAAM,CAAA;aACd,CAAC,CAAA;SACH,CAAA;KACF,CAAA;CACF;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,aAAa,EAAE,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACrD,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,8BAA8B,CAAC,EAAE,OAAO,CAAA;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,oBAAoB,CAAA;IACjC,iBAAiB,EAAE,YAAY,EAAE,CAAA;IACjC,cAAc,EAAE,OAAO,CAAA;IACvB,WAAW,EAAE,WAAW,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,gBAAgB,EAAE,gBAAgB,EAAE,CAAA;IACpC,iBAAiB,EAAE,iBAAiB,CAAA;CACrC"}
@@ -0,0 +1,3 @@
1
+ export type { CurrentUser, DashboardFeatures, DashboardPreferences, ObservedUser, SharedCourseData, WidgetDashboardEnv, } from './env';
2
+ export type { Announcement, BaseWidgetProps, ConversationParticipant, CourseGrade, CourseGradeCardProps, CourseOption, CourseWorkSummary, DashboardTab, DateRangeOption, GradeItemProps, GradingStandardData, InboxMessage, RecentGradeSubmission, TabId, Widget, WidgetConfig, WidgetPosition, WidgetRegistry, WidgetRenderer, WidgetSize, } from './widget';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAmBA,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,OAAO,CAAA;AAEd,YAAY,EACV,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,qBAAqB,EACrB,KAAK,EACL,MAAM,EACN,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,UAAU,GACX,MAAM,UAAU,CAAA"}
@@ -0,0 +1,141 @@
1
+ import { default as React } from 'react';
2
+
3
+ export type TabId = 'dashboard' | 'courses';
4
+ export interface DashboardTab {
5
+ id: TabId;
6
+ label: string;
7
+ }
8
+ export interface WidgetPosition {
9
+ col: number;
10
+ row: number;
11
+ relative: number;
12
+ }
13
+ export interface WidgetSize {
14
+ width: number;
15
+ height: number;
16
+ }
17
+ export interface Widget {
18
+ id: string;
19
+ type: string;
20
+ position: WidgetPosition;
21
+ title: string;
22
+ }
23
+ export interface WidgetConfig {
24
+ columns: number;
25
+ widgets: Widget[];
26
+ }
27
+ export interface CourseWorkSummary {
28
+ due: number;
29
+ missing: number;
30
+ submitted: number;
31
+ }
32
+ export interface CourseOption {
33
+ id: string;
34
+ name: string;
35
+ }
36
+ export interface DateRangeOption {
37
+ id: string;
38
+ label: string;
39
+ startDate: Date;
40
+ endDate: Date;
41
+ }
42
+ export interface BaseWidgetProps {
43
+ widget: Widget;
44
+ isLoading?: boolean;
45
+ error?: string | null;
46
+ onRetry?: () => void;
47
+ isEditMode?: boolean;
48
+ dragHandleProps?: any;
49
+ }
50
+ export interface WidgetRenderer {
51
+ component: React.ComponentType<BaseWidgetProps>;
52
+ displayName: string;
53
+ description: string;
54
+ }
55
+ export type WidgetRegistry = Record<string, WidgetRenderer>;
56
+ export type GradingStandardData = Array<[string, number]>;
57
+ export interface CourseGrade {
58
+ courseId: string;
59
+ courseCode: string;
60
+ courseName: string;
61
+ currentGrade: number | null;
62
+ gradingScheme: 'percentage' | GradingStandardData;
63
+ lastUpdated?: Date | null;
64
+ }
65
+ export interface CourseGradeCardProps {
66
+ courseId: string;
67
+ courseCode: string;
68
+ courseName: string;
69
+ currentGrade: number | null;
70
+ gradingScheme: 'percentage' | GradingStandardData;
71
+ lastUpdated?: Date | null;
72
+ onShowGradebook: () => void;
73
+ gridIndex?: number;
74
+ globalGradeVisibility?: boolean;
75
+ onGradeVisibilityChange?: (visible: boolean) => void;
76
+ }
77
+ export interface Announcement {
78
+ id: string;
79
+ title: string;
80
+ message: string;
81
+ posted_at: string;
82
+ html_url: string;
83
+ context_code: string;
84
+ course?: {
85
+ id: string;
86
+ name: string;
87
+ courseCode?: string;
88
+ };
89
+ author?: {
90
+ _id: string;
91
+ name: string;
92
+ avatarUrl: string;
93
+ } | null;
94
+ isRead?: boolean;
95
+ }
96
+ export interface RecentGradeSubmission {
97
+ _id: string;
98
+ submittedAt: string | null;
99
+ gradedAt: string | null;
100
+ score: number | null;
101
+ grade: string | null;
102
+ state: string;
103
+ assignment: {
104
+ _id: string;
105
+ name: string;
106
+ htmlUrl: string;
107
+ pointsPossible: number | null;
108
+ submissionTypes: string[];
109
+ quiz: {
110
+ _id: string;
111
+ title: string;
112
+ } | null;
113
+ discussion: {
114
+ _id: string;
115
+ title: string;
116
+ } | null;
117
+ course: {
118
+ _id: string;
119
+ name: string;
120
+ courseCode?: string;
121
+ };
122
+ };
123
+ }
124
+ export interface GradeItemProps {
125
+ submission: RecentGradeSubmission;
126
+ }
127
+ export interface ConversationParticipant {
128
+ id: string;
129
+ name: string;
130
+ avatarUrl?: string;
131
+ }
132
+ export interface InboxMessage {
133
+ id: string;
134
+ subject: string;
135
+ lastMessageAt: string;
136
+ messagePreview: string;
137
+ workflowState: 'read' | 'unread' | 'archived';
138
+ conversationUrl: string;
139
+ participants: ConversationParticipant[];
140
+ }
141
+ //# sourceMappingURL=widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/types/widget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export interface BaseGraphQLResponse<T = unknown> {
2
+ legacyNode?: {
3
+ _id: string;
4
+ enrollments: T[];
5
+ } | null;
6
+ errors?: {
7
+ message: string;
8
+ }[];
9
+ }
10
+ /**
11
+ * Creates query config with user-specific cache key.
12
+ * Pass currentUserId from usePlatformUi() context.
13
+ */
14
+ export declare const createUserQueryConfig: (queryKey: (string | number | undefined)[], staleTimeMinutes?: number, currentUserId?: string) => {
15
+ staleTime: number;
16
+ refetchOnWindowFocus: boolean;
17
+ enabled: boolean;
18
+ queryKey: (string | number | undefined)[];
19
+ };
20
+ //# sourceMappingURL=graphql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/utils/graphql.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAC9C,UAAU,CAAC,EAAE;QACX,GAAG,EAAE,MAAM,CAAA;QACX,WAAW,EAAE,CAAC,EAAE,CAAA;KACjB,GAAG,IAAI,CAAA;IACR,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC/B;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,EACzC,mBAAkB,MAAU,EAC5B,gBAAgB,MAAM,KACrB;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAA;CAQ1C,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { WidgetRegistry } from './types';
2
+
3
+ export declare const widgetRegistry: WidgetRegistry;
4
+ //# sourceMappingURL=widgetRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widgetRegistry.d.ts","sourceRoot":"","sources":["../src/widgetRegistry.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,eAAO,MAAM,cAAc,EAAE,cAmD5B,CAAA"}
package/package.json ADDED
@@ -0,0 +1,86 @@
1
+ {
2
+ "name": "@instructure/platform-widget-dashboard",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./locales/en.json": "./locales/en.json",
14
+ "./locales/es.json": "./locales/es.json"
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "locales"
19
+ ],
20
+ "peerDependencies": {
21
+ "@instructure/ui-a11y-content": "^10.0.0",
22
+ "@instructure/ui-alerts": "^10.0.0",
23
+ "@instructure/ui-avatar": "^10.0.0",
24
+ "@instructure/ui-buttons": "^10.0.0",
25
+ "@instructure/ui-checkbox": "^10.0.0",
26
+ "@instructure/ui-date-time-input": "^10.0.0",
27
+ "@instructure/ui-flex": "^10.0.0",
28
+ "@instructure/ui-grid": "^10.0.0",
29
+ "@instructure/ui-heading": "^10.0.0",
30
+ "@instructure/ui-icons": "^10.0.0",
31
+ "@instructure/ui-link": "^10.0.0",
32
+ "@instructure/ui-list": "^10.0.0",
33
+ "@instructure/ui-menu": "^10.0.0",
34
+ "@instructure/ui-modal": "^10.0.0",
35
+ "@instructure/ui-pagination": "^10.0.0",
36
+ "@instructure/ui-pill": "^10.0.0",
37
+ "@instructure/ui-responsive": "^10.0.0",
38
+ "@instructure/ui-simple-select": "^10.0.0",
39
+ "@instructure/ui-spinner": "^10.0.0",
40
+ "@instructure/ui-tabs": "^10.0.0",
41
+ "@instructure/ui-text": "^10.0.0",
42
+ "@instructure/ui-text-area": "^10.0.0",
43
+ "@instructure/ui-text-input": "^10.0.0",
44
+ "@instructure/ui-tooltip": "^10.0.0",
45
+ "@instructure/ui-truncate-text": "^10.0.0",
46
+ "@instructure/ui-view": "^10.0.0",
47
+ "@tanstack/react-query": "^5.0.0",
48
+ "graphql": "^16.0.0",
49
+ "graphql-tag": "^2.12.0",
50
+ "moment-timezone": "^0.5.0",
51
+ "react": "^18.0.0",
52
+ "react-dom": "^18.0.0",
53
+ "@instructure/platform-provider": "0.1.1"
54
+ },
55
+ "dependencies": {
56
+ "@tanstack/query-persist-client-core": "^5.0.0",
57
+ "sanitize-html": "^2.0.0",
58
+ "uuid": "^10.0.0",
59
+ "@instructure/platform-graphql-types": "0.1.0"
60
+ },
61
+ "devDependencies": {
62
+ "@testing-library/jest-dom": "^6.9.1",
63
+ "@testing-library/react": "^16.3.0",
64
+ "@testing-library/user-event": "^14.5.0",
65
+ "@types/react": "^18.3.0",
66
+ "@types/react-dom": "^18.3.0",
67
+ "@vitejs/plugin-react": "^4.2.0",
68
+ "@vitest/coverage-v8": "^4.0.17",
69
+ "graphql": "^16.9.0",
70
+ "jsdom": "^25.0.0",
71
+ "msw": "^2.0.0",
72
+ "typescript": "^5.3.0",
73
+ "vite": "^5.0.0",
74
+ "vite-plugin-dts": "^3.7.0",
75
+ "vitest": "^4.0.10"
76
+ },
77
+ "owner": "LX",
78
+ "scripts": {
79
+ "build": "vite build",
80
+ "dev": "vite build --watch",
81
+ "test": "vitest run",
82
+ "test:watch": "vitest",
83
+ "type-check": "tsc --noEmit",
84
+ "pack:tarball": "pnpm build && pnpm pack"
85
+ }
86
+ }