Skip to content
Open

V12 #2102

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
382 commits
Select commit Hold shift + click to select a range
c74ae46
chore: muted background color semantic updated for dark mode, disable…
svc-instui Nov 2, 2025
a5738fb
chore: semantic buttons dark mode colors
svc-instui Nov 2, 2025
7301a11
chore: btn rebrand light color adjustments for a11y
svc-instui Nov 2, 2025
9b23a75
chore: primaryoncolor disabled color adjustments in light mode
svc-instui Nov 2, 2025
214675b
chore: aibtn color adjustments
svc-instui Nov 2, 2025
b5b416f
chore: btn value updates for canvas and canvas highcontrast
svc-instui Nov 3, 2025
e3f72b4
chore: fix disabled tertiary icon color in rebrand light
svc-instui Nov 3, 2025
2c268cb
chore: fix checkbox component sizes in rebrand
svc-instui Nov 3, 2025
344daef
chore: remove icon related link component tokens
svc-instui Nov 3, 2025
ba935c9
chore: fix radio and checkbox tokens
svc-instui Nov 4, 2025
e8565a5
chore: rename utility to sharedtokens and add margin values
svc-instui Nov 4, 2025
e5bc3dd
chore: add focus shared tokens
svc-instui Nov 4, 2025
02a81ca
chore: fix sharedtoken token reference
svc-instui Nov 4, 2025
0d6d2c9
chore: update sharedtoken structure and add a new avatar token
svc-instui Nov 4, 2025
748e593
feat(many): separate focus outline calculation from view, inject shar…
HerrTopi Nov 4, 2025
101c2a9
refactor(many): type new themes properly
matyasf Nov 5, 2025
a2a1965
chore(many): make documentation preview builds show console messages
ToMESSKa Oct 29, 2025
d1c8a1a
chore: disabled btn color corrections
svc-instui Nov 5, 2025
8b7dc43
chore: generating vars for btn adjustments
svc-instui Nov 5, 2025
117047f
chore: add text component tokens
svc-instui Nov 5, 2025
359c69f
chore: add text component colors
svc-instui Nov 5, 2025
cbc233c
chore: add text color tokens to text component
svc-instui Nov 5, 2025
31614c0
chore: fix lineheight token
svc-instui Nov 5, 2025
c588cf0
chore: ai btn adjustments on canvas high contrast
svc-instui Nov 5, 2025
27de721
chore: add textdecoration tokens to link
svc-instui Nov 5, 2025
e4b46d6
chore: add text component descriptions
svc-instui Nov 5, 2025
677d9e5
chore: delete unused textarea tokens
svc-instui Nov 6, 2025
8b8dd36
chore: rename paddinghorizontal to padding in textarea
svc-instui Nov 6, 2025
4e732cb
Merge master into v12 to bring in latest changes
balzss Nov 6, 2025
de657ce
chore: update pnpm-lock.yaml after merge
balzss Nov 6, 2025
75c8743
refactor: fix package.lock.json in the regression test
matyasf Nov 6, 2025
769fe76
refactor(ui-top-nav-bar): add upgrade guide, skip failing tests
matyasf Nov 7, 2025
9a52aef
chore: tooltip initial tokens
svc-instui Nov 6, 2025
bef87f2
chore: tooltip rebrand mode adjustments
svc-instui Nov 6, 2025
409fdd7
chore: semantic and component token adjustments for tooltip
svc-instui Nov 7, 2025
4bddb39
chore: remove unnecessary icon tokens from avatar
svc-instui Nov 7, 2025
05d4125
chore: remove icon token from breadcrumb
svc-instui Nov 7, 2025
665dde6
chore: remove icon tokens from formfieldmessage
svc-instui Nov 7, 2025
57215c1
chore: remove erroriconmarginright token from formfieldmessage
svc-instui Nov 7, 2025
2491632
chore: remove icon related pill tokens
svc-instui Nov 7, 2025
adc0ee6
chore: add fontfamily text tokens
svc-instui Nov 9, 2025
07219f0
chore: modify large text fontsize
svc-instui Nov 9, 2025
f14c9dd
chore: remove unecessary fontcolor token from breadcrumb
svc-instui Nov 9, 2025
a9869bd
chore: remove unused breadcrumb tokens
svc-instui Nov 9, 2025
8ef3aed
chore: add aitext and bg colors to semantic
svc-instui Nov 9, 2025
a4be7a3
chore: updated navy10 color value for secondary btn hover state
svc-instui Nov 9, 2025
aabeed0
chore: add toggle tokens
svc-instui Nov 11, 2025
31db00d
chore: fix color contrast on rebrand light and replace green with aurora
svc-instui Nov 11, 2025
03b634e
chore: add toggle tokens
svc-instui Nov 11, 2025
c256c1e
chore: fix interactive icon colors and recolor to green from aurora
svc-instui Nov 11, 2025
baa2fdd
chore: add legacy margin tokens to sharedtokens
svc-instui Nov 11, 2025
ff497ab
chore: update accent background colors
svc-instui Nov 11, 2025
7bfc60d
chore: fix muted hint message color
svc-instui Nov 12, 2025
3e97d5b
chore: add toggle tokens
svc-instui Nov 12, 2025
bb591f8
chore: add new toggle tokens
svc-instui Nov 12, 2025
184db38
chore: add lineheight tokens to toggle
svc-instui Nov 12, 2025
2f55f9f
chore: add toggle state tokens
svc-instui Nov 12, 2025
0912c48
chore: popover and tooltip token separation
svc-instui Nov 12, 2025
a2a8ffb
refactor(emotion): add new way of using parent tokens
HerrTopi Nov 12, 2025
d4a5e6c
chore(ui-avatar): remove icon token usage from avatar
HerrTopi Nov 13, 2025
2809cf9
chore: add state bg tokens to toggle
svc-instui Nov 12, 2025
2790d92
refactor(ui-scripts): add tokens for Badge, Mask, Modal, Tag and modi…
matyasf Nov 19, 2025
200d37b
feat(ui-react-utils): add useDeterministicID which can be used instea…
matyasf Nov 11, 2025
eccd561
refactor(ui-radio-input): convert RadioInput to functional component
matyasf Nov 11, 2025
6443716
feat(ui-radio-input): use the new theme for RadioInput
matyasf Nov 12, 2025
23fcbfa
refactor: skip commitizen in worktrees too for rebase
matyasf Nov 13, 2025
4ab382a
chore: remove unused modalheader token
svc-instui Nov 19, 2025
1204275
chore: byebye aurora
svc-instui Nov 19, 2025
1a4b660
chore: opacity tokens for base button
svc-instui Nov 20, 2025
4cd8523
chore: amended canvas high contrast tokens for base button
svc-instui Nov 20, 2025
3b88aff
chore: add formfield breakpoint
svc-instui Nov 20, 2025
2f896ac
chore: add heading typography tokens
svc-instui Nov 20, 2025
40289bd
chore: update elevation token
svc-instui Nov 20, 2025
feb3be2
chore: primary btn text token adjustments
svc-instui Nov 20, 2025
6d1ae5a
chore: base button text token amendments
svc-instui Nov 21, 2025
b39a6b5
chore: fix lineheight token on labels
svc-instui Nov 21, 2025
9e38a66
refactor(ui-icons,ui-color-picker): merge master
matyasf Nov 21, 2025
b732941
chore: add heading fontsizes
svc-instui Nov 21, 2025
175c09c
chore: add heading fontfamilies
svc-instui Nov 21, 2025
4c31ae9
chore: delete label fontsize in text component
svc-instui Nov 21, 2025
5f5bd42
chore: add heading tokens
svc-instui Nov 21, 2025
7fcc500
chore: adjust heading styles
svc-instui Nov 22, 2025
c7e4ef3
chore: add tray tokens
svc-instui Nov 22, 2025
8eb5f6b
chore: update elevation tokens
svc-instui Nov 22, 2025
070e076
chore: secondary btn token amendments
svc-instui Nov 23, 2025
ee00adc
chore: regenerated primitive vars
svc-instui Nov 23, 2025
b860243
chore: state text colors for base buttons and secondary oncolor seman…
svc-instui Nov 23, 2025
3dff61a
chore: updated base text color token names for basebutton
svc-instui Nov 23, 2025
512393d
chore: generated vars for base button token updates
svc-instui Nov 23, 2025
d128578
chore: var export
svc-instui Nov 23, 2025
59e49a9
chore: simplified disabled tokens for ai buttons
svc-instui Nov 23, 2025
2a1a750
chore: var generation
svc-instui Nov 23, 2025
3c2f386
chore: secondary on color component tokens
svc-instui Nov 23, 2025
4713d6e
chore: basebutton tokens adjustments
svc-instui Nov 24, 2025
1ade6cb
chore: add heading tokens
svc-instui Nov 24, 2025
d704fdf
chore: added full border radius for basebutton
svc-instui Nov 24, 2025
c572bcc
chore: fix metric label size
svc-instui Nov 24, 2025
45da6ef
chore: var export to fix broken ref
svc-instui Nov 24, 2025
94bb709
chore: fix tray borderwidth
svc-instui Nov 24, 2025
9b0098c
chore: remove unused modal tokens
svc-instui Nov 25, 2025
89300c6
chore: add tray padding
svc-instui Nov 25, 2025
c1aba7a
feat(ui-icons-lucide): add lucide icons
joyenjoyer Nov 26, 2025
9fc90e8
chore: add view tokens
svc-instui Nov 26, 2025
cbc03d2
chore: removed unused ai secondary bg color token from basebutton
svc-instui Nov 26, 2025
de953bc
chore: add view tokens and new breakpoint tokens to semantic
svc-instui Nov 26, 2025
3274a0f
chore: add contextview and view tokens
svc-instui Nov 26, 2025
d0b8b63
chore: add new json sets to the themes
svc-instui Nov 26, 2025
bf27edc
chore: rename avatar tokens
svc-instui Nov 27, 2025
3a0904b
refactor(ui-avatar): rename Avatar tokens in index.tsx and styles.ts
joyenjoyer Nov 27, 2025
974eefd
chore: export themes and update ids
svc-instui Nov 27, 2025
6590966
feat(many): add solution for using both old and new token system in t…
HerrTopi Nov 27, 2025
2c3f841
chore: update avatar color ids
svc-instui Nov 27, 2025
620b421
refactor(ui-radio-input,ui-avatar,emotion): split useStyle into old a…
matyasf Nov 25, 2025
e010ea4
feat(ui-spinner,ui-avatar): refactor spinner
HerrTopi Nov 10, 2025
f5ef5ee
refactor(ui-text): migrate to new theming system
matyasf Nov 21, 2025
3895fe8
chore: add progressbar tokens
svc-instui Nov 28, 2025
884273e
chore: metric value font weight update on canvas
svc-instui Nov 28, 2025
978ef5a
chore: menu tokens basic set
svc-instui Nov 28, 2025
dbedfc4
chore: update shadow tokens and add missing view and contextview tokens
svc-instui Nov 28, 2025
f461d92
chore: fix space before arrow token
svc-instui Nov 28, 2025
9630b7f
fix(ui-scripts): fix number token type issue
adamlobler Nov 28, 2025
a429312
refactor(ui-spinner,ui-scripts,ui-avatar): add new tokens, fix Spacin…
matyasf Dec 1, 2025
650e4e6
chore(many): turn off broken tests until their components are reworked
HerrTopi Nov 28, 2025
35b95d7
feat(ui-metric,emotion): rework Metric
ToMESSKa Dec 2, 2025
84f9a34
feat(ui-number-input): rewrite NumberInput to the new theming system
matyasf Nov 27, 2025
a27896b
chore: options tokens all
svc-instui Dec 2, 2025
273c355
chore: rename texthovercolor to placeholderhovercolor
svc-instui Dec 2, 2025
10dbd29
chore: add rangeinput tokens
svc-instui Dec 2, 2025
de0922f
chore: fix largelineheight token name
svc-instui Dec 2, 2025
0d24ed7
chore: range input amendment
svc-instui Dec 2, 2025
dd75f40
chore: menu tokens
svc-instui Dec 2, 2025
fddf539
chore: update textinput placeholder hover color in canvas themes
svc-instui Dec 2, 2025
a1012de
chore: split modal tokens into separate jsons
svc-instui Dec 2, 2025
a11acea
chore: modify large padding on rangeinput component
svc-instui Dec 2, 2025
4a1277b
chore: fix modal padding tokens
svc-instui Dec 2, 2025
167222f
feat(many): rework TextArea and dependent FormField components
ToMESSKa Dec 2, 2025
53a209a
chore: menu item tokens
svc-instui Dec 3, 2025
a4b18c9
chore: fix modal tokens
svc-instui Dec 3, 2025
73e893a
chore: fix menu export
svc-instui Dec 3, 2025
6895b86
chore: fix modal header and button gap tokens
svc-instui Dec 3, 2025
7fa3525
chore: add missing rangeinput tokens
svc-instui Dec 3, 2025
5224d89
chore: file drop tokens
svc-instui Dec 4, 2025
66b504b
chore: popover token cleanup
svc-instui Dec 4, 2025
79f6af3
chore: link hover text update on semantic
svc-instui Dec 4, 2025
da88f61
chore: cleaned up tooltip tokens
svc-instui Dec 4, 2025
a2ad77b
chore: primary inverse bg semantic amendment for view
svc-instui Dec 4, 2025
d437669
chore: popover and tooltip latest token updates
svc-instui Dec 4, 2025
2d66f1f
chore: fix textinput spacings
svc-instui Dec 4, 2025
907f7bb
feat(ui-link): migrate to new theming system and deprecate old varian…
git-nandor Dec 2, 2025
ace0ff4
chore: fix progressbar token names
svc-instui Dec 5, 2025
9045e79
chore: update progressbar tokens
svc-instui Dec 5, 2025
166d9fa
chore: add progresbar fontsize tokens
svc-instui Dec 5, 2025
2df3176
chore: color primary inverse value amendment for view
svc-instui Dec 5, 2025
4c7e8f5
chore: border radius amendment for pill on rebrand
svc-instui Dec 5, 2025
d471364
chore: update heading fontsize names
svc-instui Dec 5, 2025
ed3b982
chore: update progressbar fontsizes
svc-instui Dec 5, 2025
77b3159
refactor(ui-text-input,ui-pill,emotion): add the new theme support fo…
matyasf Dec 2, 2025
560db96
chore: update large textinput padding value
svc-instui Dec 5, 2025
d144e34
chore: pill and badge token amendments and link unstyled text
svc-instui Dec 5, 2025
eafa60a
chore: theme amendments for badge and rangeinput
svc-instui Dec 5, 2025
c98b544
chore: countoffset added to badge
svc-instui Dec 5, 2025
12f55d2
chore(ui-pill): sync token
git-nandor Dec 5, 2025
e8e2713
chore: update progressbar color values
svc-instui Dec 8, 2025
e000c34
chore: add formfieldgroup tokens
svc-instui Dec 8, 2025
71d7ce4
chore: pill amendments
svc-instui Dec 8, 2025
ac89f54
chore: file drop amendments
svc-instui Dec 8, 2025
5162118
chore: fix rangeinput tokens
svc-instui Dec 8, 2025
ec8fb19
chore: export new rangeinput tokens
svc-instui Dec 8, 2025
6b1a9e5
chore: add progressbar trackcolorinverse color
svc-instui Dec 8, 2025
3d61dfc
chore: add zindex token to tray
svc-instui Dec 8, 2025
393f0f7
chore: tag tokens cleanup
svc-instui Dec 8, 2025
fa7e98f
chore: add calendar tokens
svc-instui Dec 8, 2025
346ef20
chore: update semantic border tokens
svc-instui Dec 8, 2025
3ffdcfe
chore: add calendarday tokens
svc-instui Dec 8, 2025
23ed0ab
chore: add gapinputs token to formfieldlayout
svc-instui Dec 8, 2025
e5f53c5
chore: replace avatar large fontsize token with a semantic
svc-instui Dec 8, 2025
135d53c
chore: add gapcolumns token to formfieldlayout
svc-instui Dec 8, 2025
499c0c7
chore: add grid tokens
svc-instui Dec 8, 2025
99311bd
chore: tag tokens and renaming modal sub elements
svc-instui Dec 8, 2025
10c19a2
chore: add grid row and col tokens
svc-instui Dec 9, 2025
7cfc08f
chore: update grid tokens
svc-instui Dec 9, 2025
1686c78
chore: renamed modal token groups
svc-instui Dec 9, 2025
7d505bd
chore: generated vars after renaming
svc-instui Dec 9, 2025
1d83d60
chore: update progressbar color values
svc-instui Dec 9, 2025
ae8b525
chore: fix tabs token names
svc-instui Dec 9, 2025
4838a7b
chore: fix options token names
svc-instui Dec 9, 2025
38ed67c
chore: secondary action colors for tags
svc-instui Dec 10, 2025
a5833d1
fix(emotion): fix old them override not working properly
matyasf Dec 9, 2025
78ab84f
feat(many): refactor theme parser and implement tray and tabs
HerrTopi Dec 8, 2025
b346c55
chore: add inlinelist tokens
svc-instui Dec 10, 2025
a117077
chore: file drop adjustments on canvas themes
svc-instui Dec 10, 2025
f6268af
chore: menu tokens
svc-instui Dec 10, 2025
69dacec
chore: drilldown tokens and calendar line height
svc-instui Dec 10, 2025
7ad0639
chore: update oncolor background opacity token value
svc-instui Dec 10, 2025
a7285db
chore: fix calendar token values in rebrand
svc-instui Dec 11, 2025
d5c51a7
chore: remove unused view tokens
svc-instui Dec 11, 2025
62e0103
chore: remove unnecessary calendar token
svc-instui Dec 11, 2025
8c84170
chore: base button token updates
svc-instui Dec 11, 2025
6745a5a
chore: update progressbar colors
svc-instui Dec 11, 2025
492da97
chore: update gridcol spacing values
svc-instui Dec 11, 2025
fcfe0c1
chore: update popover border token
svc-instui Dec 12, 2025
02679ad
chore: add missing tag tokens
svc-instui Dec 12, 2025
f521f46
chore: add list tokens
svc-instui Dec 12, 2025
82029f2
chore: fix filedrop borderstyle token
svc-instui Dec 12, 2025
5e0d315
chore: fix token issues
svc-instui Dec 12, 2025
ea2388e
chore: fix transparent color issues
svc-instui Dec 12, 2025
6715318
feat(ui-link): migrate to new theming system and deprecate old varian…
git-nandor Dec 2, 2025
30649af
feat(ui-breadcrumb): migrate to new theming system and add new lucide…
git-nandor Dec 4, 2025
a66b00e
chore: add view borderstyle token
svc-instui Dec 12, 2025
81d12d6
chore: add progessbar border and remove formfieldgroup tokens
svc-instui Dec 12, 2025
f5a77b7
chore: fix canvas tokens to align with the current design
svc-instui Dec 12, 2025
0e54f90
chore: add toggle variant tokens to the radioinput
svc-instui Dec 12, 2025
06cfc52
chore: add toggleshadow to radioinput
svc-instui Dec 12, 2025
083389c
chore: add table tokens
svc-instui Dec 13, 2025
3a1274b
chore: remove unused bordercolor token in tablecolheader
svc-instui Dec 13, 2025
93b7110
chore: remove unused border color form tablecell
svc-instui Dec 13, 2025
07adfc7
chore: add progressbar border inverse color token
svc-instui Dec 13, 2025
68ca34f
chore: add flex token
svc-instui Dec 13, 2025
36359bf
chore: add sourcecode editor tokens
svc-instui Dec 13, 2025
61cbf4d
chore: add outlinestyle token to shared
svc-instui Dec 15, 2025
2b89bf8
chore: add treebrowser tokens
svc-instui Dec 15, 2025
6377361
chore: add treecollection tokens
svc-instui Dec 15, 2025
b8c1e81
chore: rename treebrowserbutton to treebutton
svc-instui Dec 15, 2025
61f1f9c
feat(ui-pill): migrate to new theming system
git-nandor Dec 5, 2025
eb8dddc
chore: remove unused inlinelist token
svc-instui Dec 16, 2025
b63862e
chore: options tokens cleanup
svc-instui Dec 16, 2025
215f3c0
chore: options tokens
svc-instui Dec 16, 2025
f46e3e9
chore: renaming range input tokens
svc-instui Dec 16, 2025
d6ecaba
chore: padding amendments for drilldown
svc-instui Dec 17, 2025
29b7a36
chore: margin token amendments for options
svc-instui Dec 17, 2025
76b5a17
chore: margin amendments
svc-instui Dec 17, 2025
1b61aa9
chore: added token only sets to themes
svc-instui Dec 17, 2025
d3449dc
chore: fix zero values in spacing tokens
svc-instui Dec 17, 2025
6ac2e78
chore: fix treebrowser naming
svc-instui Dec 17, 2025
a7ebb30
chore: fix treebrowser borderradius
svc-instui Dec 17, 2025
8ddb25e
chore: add toggledetails tokens
svc-instui Dec 18, 2025
32ef404
chore: delete unused tokens
svc-instui Dec 18, 2025
40e046d
chore: update the rangeinput focus background token
svc-instui Dec 18, 2025
01b5d24
chore: fix rangeinput colors and shadow
svc-instui Dec 18, 2025
3bb99c1
chore: naming amendments for grid
svc-instui Dec 19, 2025
47485c6
chore: testing grid large width tokens in other
svc-instui Dec 19, 2025
677acd0
chore: min width value amendments for grid
svc-instui Dec 19, 2025
238c1e1
chore: removed unused spacing tokens from grid
svc-instui Dec 22, 2025
3d4712c
chore: added alert tokens
svc-instui Dec 22, 2025
d5a8eae
chore: added grid spacing tokens
svc-instui Dec 22, 2025
c177124
chore: sidenavbar tokens added
svc-instui Dec 23, 2025
41da76c
chore: alert token amendments
svc-instui Dec 23, 2025
c527db3
chore: gridcol value updates
svc-instui Dec 23, 2025
a4ea06d
chore: fix contextview tokens
svc-instui Dec 24, 2025
767d32a
chore: fix gridcol semantic issue
svc-instui Dec 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .claude/commands/commit.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Create a commit following the Instructure UI commit conventions:
## Format Requirements

Use Conventional Commits format:

```
type(scope): subject

Expand All @@ -25,13 +26,15 @@ Document any breaking changes here with BREAKING CHANGE: prefix
## Breaking Changes

Mark breaking changes with an exclamation mark after scope and document in body:

```
feat(ui-select)!: remove deprecated onOpen prop

BREAKING CHANGE: The onOpen prop has been removed. Use onShowOptions instead.
```

Breaking changes include:

- Removing/renaming props or components
- Changing prop types or behavior
- Changing defaults that affect behavior
Expand All @@ -40,6 +43,7 @@ Breaking changes include:
## Commit Footer

Always include:

```
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Expand Down
8 changes: 6 additions & 2 deletions .claude/commands/pr.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,23 +28,27 @@ All PRs must include:
6. **If Jira ticket number is unknown, ask the user for it before creating the PR**
7. Push to remote if needed: `git push -u origin <branch>`
8. Create PR with `gh pr create --title "title" --body "$(cat <<'EOF'

## Summary

- Bullet point 1
- Bullet point 2

## Test Plan

- [ ] Step 1
- [ ] Step 2

## Jira Reference

Fixes INST-XXXX (or omit this section if not applicable)

🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"`
9. Return the PR URL
)"` 9. Return the PR URL

**Important**:

- Base branch is usually `master` (not main)
- Analyze ALL commits in the branch, not just the latest one
- Use markdown checklists for test plan
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ on:
jobs:
deploy-preview:
runs-on: ubuntu-latest
env:
GITHUB_PULL_REQUEST_PREVIEW: 'true'
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
Expand Down
4 changes: 3 additions & 1 deletion .husky/prepare-commit-msg
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ if [ "$2" = "commit" ] && [ -n "$3" ]; then
fi

# Check if a rebase is in progress
if [ -d ".git/rebase-merge" ] || [ -d ".git/rebase-apply" ]; then
if [ -d "$(git rev-parse --git-path rebase-merge)" ] ||
[ -d "$(git rev-parse --git-path rebase-apply)" ]; then
echo "Skipping prepare-commit-msg git hook during rebase"
exit 0
fi

Expand Down
4 changes: 3 additions & 1 deletion .inst-ai/templates/jira/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ This directory contains prompt templates for generating Jira tickets from Slack
## Template Types

### Bug Report Templates

- `bug-report.extraction.md` - Extracts structured data from bug report conversations
- `bug-report.generation.md` - Generates final Jira ticket content for bugs

### Feature Request Templates

- `feature-request.extraction.md` - Extracts structured data from feature request conversations
- `feature-request.generation.md` - Generates final Jira ticket content for features

Expand Down Expand Up @@ -42,4 +44,4 @@ export const config = {

## Template Format

Templates should be valid Markdown files with embedded prompts for the AI model. The AI will process the template content and generate responses in the expected format (JSON for extraction, ADF JSON for generation).
Templates should be valid Markdown files with embedded prompts for the AI model. The AI will process the template content and generate responses in the expected format (JSON for extraction, ADF JSON for generation).
5 changes: 3 additions & 2 deletions .inst-ai/templates/jira/bug-report.extraction.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@
**Task:** Analyze the conversation and extract entities into a JSON object. Use `null` for missing values.

**Entities:**

- `component_name`: string | null - The name of the UI component or module mentioned
- `browser_name`: string | null - Browser where the issue occurs (e.g., "Chrome", "Firefox", "Safari")
- `os_name`: string | null - Operating system where the issue occurs (e.g., "macOS", "Windows", "Linux")
- `instui_version`: string | null - InstUI version (e.g., "8.51.0", "v8.51.0"). Look for @instructure/ui-* package versions in package.json, version mentions in conversation, or CodeSandbox dependencies
- `instui_version`: string | null - InstUI version (e.g., "8.51.0", "v8.51.0"). Look for @instructure/ui-\* package versions in package.json, version mentions in conversation, or CodeSandbox dependencies
- `summary_of_bug`: string - Brief description of the bug
- `reporter_name`: string - Name of the person reporting the bug
- `environment_text`: string | null - Additional environment details
Expand All @@ -18,4 +19,4 @@
**Conversation:**
{{CONVERSATION_CONTENT}}

**JSON Output:**
**JSON Output:**
3 changes: 2 additions & 1 deletion .inst-ai/templates/jira/bug-report.generation.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
**Task:** Use the `CONTEXT` to generate a JSON object with a `summary` and an ADF `description`.

**Requirements:**

- The `summary` must be: `Fix: [<Component Name>] <Brief problem description>`. Use the component_name from extracted data if available, otherwise use a generic name based on the affected area.
- The `description` must be a valid Atlassian Document Format (ADF) JSON object.
- Include all relevant technical details from the context.
Expand All @@ -24,4 +25,4 @@

**Your Turn (Use the CONTEXT provided above):**
**IMPORTANT:** Return ONLY valid JSON. Every property must be followed by a comma except the last one in an object or array. Double-check all commas before responding.
**Output JSON:**
**Output JSON:**
3 changes: 2 additions & 1 deletion .inst-ai/templates/jira/feature-request.extraction.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
**Task:** Analyze the conversation and extract entities into a JSON object. Use `null` for missing values.

**Entities:**

- `feature_name`: string | null - The name of the requested feature
- `requestor_name`: string - Name of the person requesting the feature
- `business_justification`: string | null - Why this feature is needed
Expand All @@ -15,4 +16,4 @@
**Conversation:**
{{CONVERSATION_CONTENT}}

**JSON Output:**
**JSON Output:**
3 changes: 2 additions & 1 deletion .inst-ai/templates/jira/feature-request.generation.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
**Task:** Use the `CONTEXT` to generate a JSON object with a `summary` and an ADF `description`.

**Requirements:**

- The `summary` must be: `Feature: [<Component/Area Name>] <Brief description>`. Use the feature_name or affected_components from extracted data if available, otherwise use a generic name based on the affected area.
- The `description` must be a valid Atlassian Document Format (ADF) JSON object.
- Include business justification, proposed solution, and success criteria.
Expand All @@ -24,4 +25,4 @@

**Your Turn (Use the CONTEXT provided above):**
**IMPORTANT:** Return ONLY valid JSON. Every property must be followed by a comma except the last one in an object or array. Double-check all commas before responding.
**Output JSON:**
**Output JSON:**
2 changes: 2 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ pnpm run build:types # Build TypeScript declarations

# Testing
pnpm run test:vitest # Unit tests
pnpm run test:vitest ui-radio-input # Run tests for a single package
pnpm run cy:component # Cypress component tests

# Linting
Expand Down Expand Up @@ -152,6 +153,7 @@ All components **MUST**:
```bash
pnpm run test:vitest # Unit tests
pnpm run cy:component # Cypress tests
pnpm run test:vitest ui-radio-input # Run tests for a single package

# Visual regression tests (in regression-test directory)
cd regression-test
Expand Down
Empty file added a.out
Empty file.
3 changes: 2 additions & 1 deletion cypress/component/Menu.cy.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,8 @@ describe('<Menu/>', () => {
.should('be.focused')
})

it(`should show and focus flyout menu on space keyDown`, () => {
// This test is failing randomly
it.skip(`should show and focus flyout menu on space keyDown`, () => {
cy.mount(
<Menu label="Parent">
<Menu label="Flyout">
Expand Down
2 changes: 1 addition & 1 deletion cypress/component/Pagination.cy.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ describe('<Pagination/>', () => {
})
})

cy.viewport(300, 800)
cy.viewport(100, 800)

cy.get('[role="navigation"]').within(() => {
cy.get('button').then(($items) => {
Expand Down
35 changes: 35 additions & 0 deletions docs/contributor-docs/migrating-to-new-tokens.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: Migrating components to new theming system
category: Contributor Guides
order: 01
---

# Token migration

The new token system consists of auto-generated tokens form design. They can be imported from `ui-themes`.

## Changing tokens only

The migration strategy with the least amount of effort is only changing tokens. This approach keeps the component as class-based and retains the `View` component.

Changes needed:

- Import token types from `@instructure/ui-themes` instead of `@instructure/shared-types`
- Update `generateStyle` function to use `NewComponentTypes['ComponentName']` for the theme parameter
- Replace old theme tokens with new token names from the design system
- Replace `@withStyleRework` decorator with `@withStyle` and remove `generateComponentTheme`
- delete `theme.ts`

If tokens are from a different (usually parent) components, add the `componentID` of that component as second paramater of `@withStyle` and use that name in the `generateStyle` function in `style.ts`: `NewComponentTypes['ParentComponentNameWithTheTokens']`

`generateStyle` accepts a third parameter as well, which are the `sharedTokens`. These provide tokens for shared behaviors such as focus rings, shadows or margins. `'@instructure/emotion'` has various util functions that uses these, such as `calcMarginFromShorthand` and `calcFocusOutlineStyles`.

## Removing View

For some components it makes sense to remove the `View` component underneath the component structure. Most of the time, `View` only provides margins, focus rings, or minor visual aid. These can be replicated - in most cases - by the `sharedTokens` and their utils.

Ideally all occurrences of `View` would be eliminated from the codebase.

## Transforming class based components to functional

The ultimate goal is to migrate all components to functional based ones. Currently it's not a priority and detailed migration guides will be available later. For the time being, `Avatar` or `RadioInput` can be used as starting reference points.
16 changes: 5 additions & 11 deletions docs/guides/form-errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ type: code
---
type FormMessages = {
type:
| 'newError'
| 'error'
| 'hint'
| 'success'
Expand All @@ -33,7 +32,7 @@ type: example
const PasswordExample = () => {
const [password, setPassword] = useState('')
const messages = password.length < 6
? [{type: 'newError', text: 'Password have to be at least 6 characters long!'}]
? [{type: 'error', text: 'Password have to be at least 6 characters long!'}]
: []
return (
<TextInput
Expand All @@ -48,11 +47,9 @@ const PasswordExample = () => {
render(<PasswordExample/>)
```

However you might have noticed from the type definition that a message can be `error` and `newError` type. This is due to compatibility reasons. `error` is the older type and does not meet accessibility requirements, `newError` (hance the name) is the newer and more accessible format.
The `error` type has been updated to meet accessibility requirements with proper icons and visual styling. Previously, there was a `newError` type that provided this enhanced behavior, but it has been consolidated into the standard `error` type for consistency. `newError` has been deprecated.

We wanted to allow users to start using the new format without making it mandatory, but after the introductory period `newError` will be deprecated and `error` type will be changed to look and behave the same way.

With this update we also introduced the "required asterisk" which will display an `*` character next to field labels that are required. This update is not opt-in and will apply to **all** InstUI form components so if you were relying on a custom solution for this feature before, you need to remove that to avoid having double asterisks.
We also introduced the "required asterisk" which displays an `*` character next to field labels that are required. This update applies to **all** InstUI form components, so if you were relying on a custom solution for this feature before, you need to remove that to avoid having double asterisks.

Here are examples with different form components:

Expand All @@ -62,17 +59,15 @@ type: example
---
const Example = () => {
const [showError, setShowError] = useState(true)
const [showNewError, setShowNewError] = useState(true)
const [showLongError, setShowLongError] = useState(false)
const [isRequired, setIsRequired] = useState(true)

const messages = showError
? [{type: showNewError ? 'newError' : 'error', text: showLongError ? 'Long error. Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos voluptas, esse commodi eos facilis voluptatibus harum exercitationem. Et magni est consectetur, eveniet veniam unde! Molestiae labore libero sapiente ad ratione.' : 'Short error message'}]
? [{type: 'error', text: showLongError ? 'Long error. Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos voluptas, esse commodi eos facilis voluptatibus harum exercitationem. Et magni est consectetur, eveniet veniam unde! Molestiae labore libero sapiente ad ratione.' : 'Short error message'}]
: []

const handleSettingsChange = (v) => {
setShowError(v.includes('showError'))
setShowNewError(v.includes('showNewError'))
setShowLongError(v.includes('showLongError'))
setIsRequired(v.includes('isRequired'))
}
Expand All @@ -83,10 +78,9 @@ const Example = () => {
name="errorOptions"
description="Error message options"
onChange={handleSettingsChange}
defaultValue={['showError', 'showNewError', 'isRequired']}
defaultValue={['showError', 'isRequired']}
>
<Checkbox label="Show error message" value="showError"/>
<Checkbox label="Use the new error type" value="showNewError" />
<Checkbox label="Use long message" value="showLongError" />
<Checkbox label="Make fields required" value="isRequired" />
</CheckboxGroup>
Expand Down
Loading