open-index/open-npm huggingface dataset:
npm package: @instructure/platform-institutional-tagging
Description: Institutions need a flexible system for categorizing and tracking users, courses and other resources beyond Canvas’s built-in organizational structures.
Latest version: 5.0.1

# @instructure/platform-institutional-tagging

Institutions need a flexible system for categorizing and tracking users, courses and other resources beyond Canvas’s built-in organizational structures.

## Installation

```shell
# ./canvas-lms 
yarn add -W @instructure/platform-institutional-tagging
```

`-W` _flag to add to the root workspace_

### Peer Dependencies

```json
{
  "react": "^18.0.0",
  "@instructure/ui-*": "^10.0.0",
  "@instructure/emotion": "^10.0.0"
}
```

## Usage

```tsx
<AccountTags />
```

## Development

```shell
# Start Storybook sandbox
pnpm storybook

# Run tests
pnpm test

# Run tests with coverage
pnpm test --coverage

# Build
pnpm build

# Type check
pnpm type-check
```

### Mock server

```shell
# Start the app with a local mock API, hot-reloading locales, and console labels per process
pnpm dev:mock
```

This runs three processes concurrently:
- `web-app` — Vite dev server
- `mock-server` — local API mock (see `scripts/mock-server.mjs`)
- `locales` — watches `src/constants/i18n.ts` and regenerates + validates locales on change

### Locales

Translations are defined in `src/constants/i18n.ts` and generated into `locales/en.json`.

```shell
# Regenerate locales/en.json from src/constants/i18n.ts and validate
pnpm locales:generate

# Watch src/constants/i18n.ts and regenerate + validate on every change
pnpm locales:watch
```

Validation enforces two rules:

| Rule | Behaviour |
|---|---|
| Keys must be alphabetically sorted within each object | Exits with error — run `pnpm locales:sort` to fix |
| No unused keys | Prints a warning — does not fail the process |

```shell
# Auto-sort keys in src/constants/i18n.ts alphabetically
pnpm locales:sort

# Validate only (sort check + unused key warning)
pnpm locales:validate
```
npm package: @instructure/platform-learning-agent
Description: Initial React package scaffold for the Learning Agent user experience.
Latest version: 0.2.0

# @instructure/platform-learning-agent

Initial React package scaffold for the Learning Agent user experience.

## Features

- Host-agnostic React component package
- InstUI-based starter component
- Storybook story for local development
- Vitest + Testing Library test setup
- TypeScript declaration output via Vite build

## Installation

```bash
pnpm add @instructure/platform-learning-agent
```

### Peer Dependencies

```json
{
  "react": "^18.0.0",
  "@instructure/ui-*": "^10.0.0"
}
```

## Usage

```tsx
import { LearningAgent } from '@instructure/platform-learning-agent'
import '@instructure/platform-learning-agent/styles'

export function Example() {
  return <LearningAgent defaultPath="/dashboard" />
}
```

## API

- `defaultPath?: string`
  - Initial in-memory route for the agent.
  - Supported paths: `/dashboard`, `/history`, `/chats/:id` (for example `/chats/42`).

## Development

```bash
# Run tests
pnpm test

# Run tests with coverage
pnpm test --coverage

# Build
pnpm build

# Type check
pnpm type-check
```
npm package: @instructure/platform-mock-canvas-api
Description: Mock Canvas API handlers using MSW (Mock Service Worker) for development and testing.
Latest version: 0.1.1

# @instructure/platform-mock-canvas-api

Mock Canvas API handlers using MSW (Mock Service Worker) for development and testing.

## Installation

```bash
pnpm add -D @instructure/platform-mock-canvas-api msw
```

## Usage

### In Browser (Demo App, Storybook)

```typescript
import { setupWorker } from 'msw/browser'
import { handlers } from '@instructure/platform-mock-canvas-api'

const worker = setupWorker(...handlers)
worker.start()
```

### In Tests (Vitest, Jest)

```typescript
import { setupServer } from 'msw/node'
import { handlers } from '@instructure/platform-mock-canvas-api'

const server = setupServer(...handlers)

beforeAll(() => server.listen())
afterEach(() => server.resetHandlers())
afterAll(() => server.close())
```

### Using Individual Handler Groups

```typescript
import { courseHandlers, submissionHandlers } from '@instructure/platform-mock-canvas-api'

// Use only course handlers
const worker = setupWorker(...courseHandlers)

// Or combine with your own handlers
const worker = setupWorker(...courseHandlers, ...myCustomHandlers)
```

### Using Fixtures

```typescript
import { courses, submissions, stickerDescriptions } from '@instructure/platform-mock-canvas-api/fixtures'

// Access mock data directly
console.log(courses) // Array of 5 courses
console.log(submissions) // Array of 5 submissions
```

## Included Endpoints

### Courses
- `GET /api/v1/courses` - List all courses
- `GET /api/v1/courses/:courseId` - Get single course

### Submissions
- `GET /api/v1/courses/:courseId/assignments/:assignmentId/submissions/:submissionId`
- `PATCH /api/v1/courses/:courseId/assignments/:assignmentId/submissions/:submissionId`
- `GET /api/v1/courses/:courseId/assignments/:assignmentId/submissions`

## Mock Data

- **5 Courses**: CS 101, MATH 201, ENG 150, BIO 110, HIST 100
- **5 Submissions**: With various stickers and grades
- **51 Sticker Descriptions**: Full i18n support
- **Sticker Translations**: UI text translations

## Development

```bash
# Build the package
pnpm build

# Type check
pnpm type-check
```
npm package: @instructure/platform-submission-sticker
Description: React component for adding stickers to student submissions in Canvas.
Latest version: 0.1.4

# @instructure/platform-submission-sticker

React component for adding stickers to student submissions in Canvas.

## Features

- 51 unique sticker designs (academic, sports, pandas, and more)
- Editable mode for teachers/graders
- Read-only mode with optional confetti effect for students
- Animated sparkle effects
- Accessible (screen reader support, keyboard navigation)
- InstUI components
- TanStack Query for data management
- Full TypeScript support

## Installation

```bash
pnpm add @instructure/platform-submission-sticker @instructure/platform-canvas-fetch
```

### Peer Dependencies

```json
{
  "react": "^18.0.0",
  "@instructure/ui-*": "^10.0.0",
  "@tanstack/react-query": "^5.0.0"
}
```

## Usage

```tsx
import { Sticker } from '@instructure/platform-submission-sticker'
import '@instructure/platform-submission-sticker/dist/style.css'

function GradeSubmission() {
  const [submission, setSubmission] = useState({
    id: '1',
    courseId: '100',
    assignmentId: '200',
    sticker: null
  })

  return (
    <Sticker
      submission={submission}
      editable={true}
      size="medium"
      confetti={false}
      descriptions={stickerDescriptions}
      translations={stickerTranslations}
      liveRegion={() => document.getElementById('flash_screenreader_holder')}
      onStickerChange={(sticker) => {
        setSubmission({ ...submission, sticker })
      }}
    />
  )
}
```

## API

### Props

- `submission: Submission` - Submission data with sticker state
- `editable: boolean` - Whether user can change the sticker
- `size: 'small' | 'medium' | 'large'` - Sticker display size
- `confetti?: boolean` - Show confetti explosion on click (read-only mode)
- `descriptions: StickerDescriptions` - Alt text for each sticker
- `translations: StickerTranslations` - UI text translations
- `liveRegion: () => HTMLElement` - Accessibility live region element
- `onStickerChange?: (sticker: Sticker) => void` - Callback when sticker changes

## Architecture

- **No global state** - All data passed via props
- **TanStack Query** - Used directly for mutations (no wrapper)
- **InstUI components** - Modal, Button, Alert, etc. (no abstractions)
- **CSS Modules** - Scoped styling
- **canvas-fetch** - Canvas-aware API client with Zod validation

## Development

```bash
# Run tests
pnpm test

# Run tests with coverage
pnpm test --coverage

# Build
pnpm build

# Type check
pnpm type-check
```

## Test Coverage

- 23/23 tests passing
- 95.35% statement coverage
- 93.12% branch coverage
- 84.84% function coverage