Skip to content
Open

V12 #2102

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
547 commits
Select commit Hold shift + click to select a range
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
2522608
feat(ui-file-drop): migrate to new theming system
joyenjoyer Dec 15, 2025
192c700
refactor(many): merge master into v12
matyasf Jan 5, 2026
6d7da31
chore: add togglegroup token
svc-instui Dec 25, 2025
4b7b02b
chore: update general shadow values
svc-instui Dec 25, 2025
68bf5a5
chore: update rebrand opacity token value
svc-instui Dec 25, 2025
934767e
chore: add billboard token set
svc-instui Dec 25, 2025
d7dfa50
chore: add billboard tokens
svc-instui Dec 25, 2025
39fef66
chore: update billboard token values
svc-instui Dec 25, 2025
4911ddc
chore: fix billboard message color values
svc-instui Dec 25, 2025
80e14cf
chore: add aiinformation tokens
svc-instui Dec 27, 2025
f4b4f6c
chore: add datapermissionlevels tokens
svc-instui Dec 27, 2025
73ef4ba
chore: fix billboard tokens
svc-instui Dec 27, 2025
8107e35
chore: fix datapermission token values
svc-instui Dec 27, 2025
5506061
chore: add nutritionfacts token
svc-instui Dec 29, 2025
497af80
chore: add missing aiinformation token
svc-instui Dec 29, 2025
34bc9b6
chore: fix datapermission border radius
svc-instui Dec 29, 2025
6358ea6
chore: fix datapermissionlevel radius
svc-instui Dec 29, 2025
0091d18
chore: add datapermission background
svc-instui Dec 29, 2025
c00f493
chore: fix datapermissionlevels padding
svc-instui Dec 29, 2025
3df72ad
chore: fix cardpadding
svc-instui Dec 29, 2025
ba37f6f
chore: fix datapermission token values
svc-instui Dec 30, 2025
9bdff1a
chore: fix nutritionfacts border radius
svc-instui Dec 30, 2025
84b5e14
chore: add rating tokens
svc-instui Dec 30, 2025
01932de
chore: add rating tokens to the themes
svc-instui Dec 30, 2025
17bc4a0
chore: rename rating set to ratingicon
svc-instui Dec 30, 2025
d406ca2
chore: fix rating token value
svc-instui Dec 30, 2025
c509edf
chore: add progresscricle tokens
svc-instui Jan 2, 2026
4dc7562
chore: update progresscircle rebrand values
svc-instui Jan 2, 2026
4104d33
chore: fix xsmall progresscircle
svc-instui Jan 2, 2026
a6c69df
chore: add missing tokens to progressCircle
svc-instui Jan 2, 2026
a83f559
chore: add missing calendar token
svc-instui Jan 5, 2026
2649e8e
chore: update calendar bg tokens
svc-instui Jan 5, 2026
650725b
chore: fix popover tokens
svc-instui Jan 5, 2026
b90be58
refactor(ui-view,ui-themes,emotion): migrate View and ContextView to …
balzss Dec 8, 2025
db4f45b
docs(ui-view): add View token changes to changelog + update hardcoded…
balzss Dec 16, 2025
534d4af
fix(ui-pagination): fix Pagination.PageInput theme variables not visi…
matyasf Jan 6, 2026
980fa95
chore: menu group font weight adjustment
svc-instui Jan 6, 2026
d86cf7b
chore: generated vars for menu group font weight adjustment
svc-instui Jan 6, 2026
4068ed2
chore: menugroup separator color update
svc-instui Jan 6, 2026
3728443
chore: remove minwidth from token values
svc-instui Jan 6, 2026
ff38916
chore: delete unused marginright token
svc-instui Jan 7, 2026
5475731
refactor: better logging for cypress test errors
matyasf Jan 5, 2026
8eeb39e
chore: button token adjustments
svc-instui Jan 7, 2026
c343296
feat(ui-flex): rework Flex
ToMESSKa Dec 19, 2025
7f6f323
feat(ui-form-field): rework FormFieldGroup
ToMESSKa Jan 6, 2026
470750b
chore: add trackcolorinverse token to progresscircle
svc-instui Jan 7, 2026
789a4a2
refactor: docs app preview has dark background when the theme is set …
matyasf Jan 7, 2026
e2ee7c0
chore: update sidenav color values
svc-instui Jan 8, 2026
f8f9807
chore: optionsitem token addition
svc-instui Jan 8, 2026
4cec222
chore: menu and drilldown token amendments
svc-instui Jan 8, 2026
095349f
chore: drilldown border radius update on canvas
svc-instui Jan 8, 2026
ccc29cc
chore: fix autora typo and sidenav colors
svc-instui Jan 8, 2026
b89965c
chore: fix progress circle offset value
svc-instui Jan 8, 2026
a621eb7
chore: add sidenav icon colors and additinal tokens
svc-instui Jan 8, 2026
04fe268
chore: add sidenav border radius
svc-instui Jan 8, 2026
c60a21c
chore: add missing treebrowser tokens and edit values
svc-instui Jan 8, 2026
3436862
chore: add heading and text inverse color variants
svc-instui Jan 9, 2026
194ca8a
chore: update heading and text component color names
svc-instui Jan 9, 2026
3992e06
chore: alert button margin value updates
svc-instui Jan 9, 2026
63242d5
chore: close button margin tokens moved
svc-instui Jan 9, 2026
9772dc6
refactor(many): merge master branch
matyasf Jan 12, 2026
2e4f795
feat(ui-react-utils,ui-icons-lucide,ui-avatar): add lucide icons to A…
joyenjoyer Jan 13, 2026
0048ee4
refactor(ui-text): new color tokens for colored surfaces
matyasf Jan 9, 2026
75a1dbb
chore: removed unused bordercolor from table
svc-instui Jan 9, 2026
ec1eec2
chore: btn padding amendments
svc-instui Jan 9, 2026
545264c
chore: add new sidenav tokens
svc-instui Jan 9, 2026
a3cdfcc
chore: btn padding value update
svc-instui Jan 11, 2026
bbe1724
chore: fix sidenav tokens
svc-instui Jan 12, 2026
f81fa05
chore: update contentpadding value
svc-instui Jan 12, 2026
fdd2254
chore: update sidenav width values
svc-instui Jan 12, 2026
fbf9c4e
chore: add missing tokens to sidenav
svc-instui Jan 12, 2026
a9aa1e8
chore: update sidenav width
svc-instui Jan 12, 2026
895fe3f
chore: fix borderradius name
svc-instui Jan 12, 2026
a477c35
chore: btn ref amendments
svc-instui Jan 12, 2026
3968c73
chore: opacity value updates for disabled buttons
svc-instui Jan 12, 2026
2f07d95
chore: fix borderradius name
svc-instui Jan 13, 2026
e9b246e
chore: add sidenav gap token and remove an unused one
svc-instui Jan 13, 2026
4b1822a
chore: update sidenav tokens
svc-instui Jan 13, 2026
a7e9c56
chore: update focus token value
svc-instui Jan 13, 2026
ab0d856
chore: fix focus value
svc-instui Jan 13, 2026
2f806ab
chore: primary disabled icon value update for actions
svc-instui Jan 13, 2026
ce45935
chore: add missing sourcecodeeditor text colors
svc-instui Jan 13, 2026
e4de1f2
chore: fix disabled textinput bg color
svc-instui Jan 13, 2026
e64d872
chore: fix zindex values
svc-instui Jan 13, 2026
3df476d
feat(ui-table): migrate table to new theming system
joyenjoyer Dec 17, 2025
0a91662
feat(ui-popover): rework Popover
ToMESSKa Dec 5, 2025
35964a4
fix(ui-text-input,emotion): fix TextInput displaying double focus rin…
matyasf Jan 9, 2026
ad16f11
chore: add topnav tokens and add missing sourcecodeditor token
svc-instui Jan 13, 2026
2240c68
chore: add new topnav tokens
svc-instui Jan 13, 2026
e9b2a5a
chore: fix view
svc-instui Jan 13, 2026
f91493d
chore: fix progresscircle color inverse color values
svc-instui Jan 14, 2026
437ab02
chore: remove unused grid tokens
svc-instui Jan 14, 2026
ada745c
chore: add shadow descriptions
svc-instui Jan 14, 2026
c73be62
chore: add color tokens to sharedtokens
svc-instui Jan 14, 2026
e537089
chore: add padding shared tokens and add color ending to color tokens
svc-instui Jan 14, 2026
c6b1c52
chore: add page bg token to sharedtokens
svc-instui Jan 14, 2026
025df3a
chore: add container bg color tp sharedtokens
svc-instui Jan 14, 2026
3330277
chore: fix build
svc-instui Jan 15, 2026
ecfe092
chore: delete minus value
svc-instui Jan 15, 2026
23ba66e
chore: fix drilldown spacing values
svc-instui Jan 15, 2026
6d333fb
chore: fix modal spacing values
svc-instui Jan 15, 2026
342d7ad
chore: fix spacing values
svc-instui Jan 15, 2026
733f7e6
chore: fix grid missing semantic
svc-instui Jan 15, 2026
3946402
chore: add minus value to topnavbar
svc-instui Jan 15, 2026
91e0deb
chore: reorder topnavbar tokens
svc-instui Jan 15, 2026
9912baf
chore: remove minus token from topnavbar
svc-instui Jan 15, 2026
8c31210
chore: remove placeholder token from topnav
svc-instui Jan 15, 2026
dc73010
chore: fix heading borderstyle
svc-instui Jan 15, 2026
1dd59d5
feat(ui-tooltip): rework Tooltip
ToMESSKa Jan 14, 2026
dda8c8b
chore: rename themes
svc-instui Jan 15, 2026
10452d2
chore: add radius tokens to sharedtokens
svc-instui Jan 15, 2026
386b012
refactor(ui-themes): rename theme imports following the changes in to…
matyasf Jan 16, 2026
1efef19
feat(ui-list): migrate to new theming system
git-nandor Dec 15, 2025
e5b84cd
chore: add sourcecodeeditor activelinecolor token
svc-instui Jan 16, 2026
2989d5e
chore: add select token
svc-instui Jan 18, 2026
43828b7
chore: add contextview borderradius
svc-instui Jan 18, 2026
f510e3b
chore: add popover borderradius token
svc-instui Jan 18, 2026
bf7945a
docs: clean up v12 upgrade-guide and add helper component
HerrTopi Jan 15, 2026
bc3e77d
chore: topnav tokens
svc-instui Jan 18, 2026
5e72d4b
chore: edit popover and contextview borderradii
svc-instui Jan 19, 2026
0b77b61
chore: fix topnav value
svc-instui Jan 19, 2026
4a296b5
style(ui-view): add borderradius to contextview
adamlobler Jan 18, 2026
182dde1
style(ui-popover): add borderradius to popover
adamlobler Jan 18, 2026
d97231a
style(ui-view): add hidden overflow to contextview
adamlobler Jan 19, 2026
c1a93e9
style(ui-view,ui-popover): edit the shadow in the contextview and pop…
adamlobler Jan 19, 2026
524e8e7
style(ui-tooltip): add resting shadow to tooltip
adamlobler Jan 20, 2026
2d26b59
feat(ui-tag): rework Tag
ToMESSKa Jan 14, 2026
548bd94
refactor(many): merge lucide icon package into ui-icons
joyenjoyer Jan 16, 2026
7e92aef
refactor(many): refactor after review
joyenjoyer Jan 20, 2026
58d310c
chore: fix tab bg color
svc-instui Jan 19, 2026
1c4345c
chore: fix treebrowser hover text color value
svc-instui Jan 20, 2026
66dbc15
chore: add toggledetails content padding tokens
svc-instui Jan 20, 2026
8a335bf
feat(ui-range-input): rework RangeInput
ToMESSKa Jan 13, 2026
2b069c3
feat(ui-progress): rework ProgressCircle
ToMESSKa Jan 8, 2026
fc57d6b
build(ui-themes,ui-scripts,emotion): move SharedTokens to the upper-m…
HerrTopi Jan 12, 2026
7412dae
feat(ui-tray): migrate to new theming system
git-nandor Jan 10, 2026
37fa638
refactor: regression test: fix DEV build
matyasf Jan 19, 2026
16a60f3
refactor: add Atkinson Hyperlegible and Inclusive Sans to the fonts i…
matyasf Jan 20, 2026
f7cb32e
feat(ui-date-input,ui-calendar): rework Calendar and DateInput
ToMESSKa Jan 22, 2026
caf10f5
feat(ui-toggle-details): rework ToggleGroup
ToMESSKa Jan 23, 2026
5e02f35
feat(ui-badge): rework Badge
ToMESSKa Dec 12, 2025
d6f5a21
feat(ui-source-code-editor): rework SourceCodeEditor
ToMESSKa Jan 22, 2026
720ff26
feat(ui-heading): rework Heading
ToMESSKa Jan 23, 2026
2183d5b
fix(many): a11y requirement fix, interactive links must be underlined…
git-nandor Jan 26, 2026
656ec0d
chore: update code fontfamily in rebrand
svc-instui Jan 21, 2026
ce382a7
chore: add illustration icon sizes
svc-instui Jan 21, 2026
7a17add
chore: fix select tokens
svc-instui Jan 21, 2026
1332102
chore: updated semantic stroke colors on canv hc reb dark
svc-instui Jan 22, 2026
25a3e0d
chore: deleted unsused link tokens
svc-instui Jan 22, 2026
f96253e
chore: interactive success border update
svc-instui Jan 22, 2026
78b7108
chore: update and add tabs tokens and fix popover bordervalue
svc-instui Jan 22, 2026
56a86df
style(ui-tabs): added selected text color style to be able to use it …
adamlobler Jan 22, 2026
6177e0b
chore: fix shared spacing and radius tokens
svc-instui Jan 23, 2026
91d033b
chore: update sharedtokens set
svc-instui Jan 23, 2026
78a3414
chore: add large card gap to sharedtokens
svc-instui Jan 26, 2026
e700e13
chore: delete unnecessary radius token from sharedtokens
svc-instui Jan 27, 2026
2bcd64b
chore: add legacy radius tokens to sharedtokens
svc-instui Jan 27, 2026
a2c2a4b
refactor(many): fix code for new sharedToken structure
matyasf Jan 27, 2026
d743c9c
chore: rename container tokens to card
svc-instui Jan 27, 2026
0360591
chore: padding adjustments for menu
svc-instui Jan 28, 2026
50627e3
feat(ui-tree-browser): migrate to new theming system, add controlled …
git-nandor Jan 27, 2026
12c52cf
chore: pagination token
svc-instui Jan 28, 2026
3049e1a
chore: export tokens
svc-instui Jan 28, 2026
54d0c93
chore: fix radius and padding values
svc-instui Jan 28, 2026
e01d087
chore: menu and billboard fixes
svc-instui Jan 29, 2026
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
2 changes: 1 addition & 1 deletion .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -1 +1 @@
npx --no -- commitlint --edit $1
npx --no -- commitlint --edit "$(realpath "$1")"
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:**
24 changes: 9 additions & 15 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,20 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline

# [11.3.0](https://github.com/instructure/instructure-ui/compare/v11.2.0...v11.3.0) (2026-01-12)


### Bug Fixes

* **ui-color-picker:** fix mixer button alignment and visual jump ([68c3e60](https://github.com/instructure/instructure-ui/commit/68c3e60acc5e1f410ed79a623a35fa3eaf7107f5))
* **ui-color-picker:** fix popover scrolling when content exceeds viewport ([66f2b18](https://github.com/instructure/instructure-ui/commit/66f2b18af0dead1f62ee61629262c39c6273dad0))
* **ui-icons:** fix ai info icon ([723ef9f](https://github.com/instructure/instructure-ui/commit/723ef9fb972fbcbf7627653698d2e47f8af49822))
* **ui-link:** fix Link outline styles and overrides ([f23269e](https://github.com/instructure/instructure-ui/commit/f23269ed1139bb9833abbc894493a95bb80e27f4))
* **ui-list:** align ordered list start position with unordered lists ([baed912](https://github.com/instructure/instructure-ui/commit/baed912a2f246797b5bcd58c40c64b26de6baaf2))
* **ui-modal:** adjust scrollbar detection tolerance in ModalBody ([5ae1f42](https://github.com/instructure/instructure-ui/commit/5ae1f42f47102b87a8c7afabdd9ab51b331de96a))
* **ui-selectable,ui-select:** fix typing of Select and Selectable event types and TypeScript errors in the examples ([bde40cc](https://github.com/instructure/instructure-ui/commit/bde40cc121674666cceb7eb24e116a50e1879445))
* **ui-top-nav-bar:** fix aria-expanded added twice when displaying menus/popups ([b58a1bc](https://github.com/instructure/instructure-ui/commit/b58a1bc8daba596c987dc368d7772e53253c1d77))

- **ui-color-picker:** fix mixer button alignment and visual jump ([68c3e60](https://github.com/instructure/instructure-ui/commit/68c3e60acc5e1f410ed79a623a35fa3eaf7107f5))
- **ui-color-picker:** fix popover scrolling when content exceeds viewport ([66f2b18](https://github.com/instructure/instructure-ui/commit/66f2b18af0dead1f62ee61629262c39c6273dad0))
- **ui-icons:** fix ai info icon ([723ef9f](https://github.com/instructure/instructure-ui/commit/723ef9fb972fbcbf7627653698d2e47f8af49822))
- **ui-link:** fix Link outline styles and overrides ([f23269e](https://github.com/instructure/instructure-ui/commit/f23269ed1139bb9833abbc894493a95bb80e27f4))
- **ui-list:** align ordered list start position with unordered lists ([baed912](https://github.com/instructure/instructure-ui/commit/baed912a2f246797b5bcd58c40c64b26de6baaf2))
- **ui-modal:** adjust scrollbar detection tolerance in ModalBody ([5ae1f42](https://github.com/instructure/instructure-ui/commit/5ae1f42f47102b87a8c7afabdd9ab51b331de96a))
- **ui-selectable,ui-select:** fix typing of Select and Selectable event types and TypeScript errors in the examples ([bde40cc](https://github.com/instructure/instructure-ui/commit/bde40cc121674666cceb7eb24e116a50e1879445))
- **ui-top-nav-bar:** fix aria-expanded added twice when displaying menus/popups ([b58a1bc](https://github.com/instructure/instructure-ui/commit/b58a1bc8daba596c987dc368d7772e53253c1d77))

### Features

* **ui-tabs:** add tabIndex prop to the Panel for WCAG-compliant focus control (defaults to 0 for backward compatibility) ([9b2121f](https://github.com/instructure/instructure-ui/commit/9b2121f3e0f5fb0abf4ad12158f9972aa1acc5a4))




- **ui-tabs:** add tabIndex prop to the Panel for WCAG-compliant focus control (defaults to 0 for backward compatibility) ([9b2121f](https://github.com/instructure/instructure-ui/commit/9b2121f3e0f5fb0abf4ad12158f9972aa1acc5a4))

# [11.2.0](https://github.com/instructure/instructure-ui/compare/v11.0.1...v11.2.0) (2025-11-06)

Expand Down
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
11 changes: 6 additions & 5 deletions cypress/component/Tooltip.cy.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -245,11 +245,12 @@ describe('<Tooltip/>', () => {

cy.get(tooltip).should('not.be.visible')

cy.get('[data-testid="trigger"]')
.realHover()
.then(() => {
cy.get(tooltip).should('be.visible')
})
cy.get('[data-testid="trigger"]').realHover()

// Verify tooltip is rendered and accessible (avoid Cypress's "covered by" check)
cy.get(tooltip).should('exist')
cy.get(tooltip).should('have.css', 'display', 'block')
cy.contains('Hello. I\'m a tool tip').should('exist')

cy.get(tooltip)
.realPress('Escape')
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 `calcSpacingFromShorthand` 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