Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
deb1ce5
feat(app-header): support slotted brand marks
jansaldo Jul 21, 2026
9bff750
fix(toolbar): wrap anonymizer controls responsively
jansaldo Jul 21, 2026
adf4c3c
feat(card-tool): add reusable feature cards
jansaldo Jul 21, 2026
22d82dd
docs: document app header and card tool
jansaldo Jul 21, 2026
be3b41f
fix(toolbar): wrap search-switch controls responsively
jansaldo Jul 21, 2026
bfd8edd
fix(archive-progress): drop the replace status and dismiss action
jansaldo Jul 21, 2026
7bd9603
feat(callout): add compact notification size
jansaldo Jul 21, 2026
fb21d81
feat(dialog): add responsive content sizes
jansaldo Jul 21, 2026
9a619ad
feat(side-panel): add responsive size variants
jansaldo Jul 21, 2026
94cc61d
feat(file-drop-zone): add responsive file selection surface
jansaldo Jul 21, 2026
d696f4b
feat(archive-view): add loading, configurable selection and a large size
jansaldo Jul 21, 2026
a978ac1
feat(archive-row): add horizontal file presentation
jansaldo Jul 21, 2026
9198efb
fix: reset margin on remaining unreset <p>/<h2> elements
jansaldo Jul 21, 2026
eac5d0b
feat(tutorial): add responsive tutorial grid
jansaldo Jul 21, 2026
a30a9c0
feat(tutorial): add tutorial dialog
jansaldo Jul 21, 2026
1f2d8a4
feat(app-footer): add application footer shell
jansaldo Jul 21, 2026
d4044ac
feat(features-menu): add FeaturesMenu and FeaturesMenuItem
jansaldo Jul 21, 2026
403af30
fix(archives): allow ArchiveRow without an icon
jansaldo Jul 21, 2026
331076b
fix(features-menu): keep the default cursor for disabled items
jansaldo Jul 22, 2026
738f863
feat(workflow): add shared workflow step layout
jansaldo Jul 22, 2026
535bd71
fix(tokens): align borders.secondary to Figma #9F99A5
jansaldo Jul 22, 2026
d5046db
feat(text-field): enhance typed state and reposition suggestion display
jansaldo Jul 22, 2026
0ebcc85
feat(select): self-managed value, clearable control, filled-label emp…
jansaldo Jul 22, 2026
9af5fc5
chore(test): add vitest + jsdom + testing-library for rich-text-editor
jansaldo Jul 22, 2026
99bb6bf
feat(rich-text): add RichTextDocument marks model
jansaldo Jul 22, 2026
db44fdb
feat(rich-text): add paragraph text reconciliation for contentEditabl…
jansaldo Jul 22, 2026
bfd48ba
feat(rich-text): add DOM Range to character-offset mapping
jansaldo Jul 22, 2026
949396d
feat(rich-text-editor): render marks model read-only, with editable t…
jansaldo Jul 22, 2026
4943c4e
feat(rich-text-editor): wire bold/italic/underline toolbar and typing…
jansaldo Jul 22, 2026
26a352f
feat(rich-text-editor): add highlight color picker and copy action
jansaldo Jul 22, 2026
e9e654f
feat(rich-text-editor): add Storybook stories and public export
jansaldo Jul 23, 2026
b5fce9c
fix(rich-text-editor): export marks model and document types from pub…
jansaldo Jul 23, 2026
640674e
fix(rich-text-editor): structural edits, empty input, selection clamp…
jansaldo Jul 23, 2026
9b6ced9
fix(app-header): let the logo region grow past 203px for long feature…
jansaldo Jul 23, 2026
0873baa
fix(app-header): keep the stepper truly centered regardless of logo w…
jansaldo Jul 23, 2026
9c73daf
feat(tool-button): let a consumer override the default aria-label/title
jansaldo Jul 23, 2026
a6a0b79
feat(tool-button): add missing actions to Matrix story
jansaldo Jul 23, 2026
7d494bf
fix(CheckCircle): update component to use solid stroke and remove gra…
jansaldo Jul 23, 2026
1e740a1
feat(Popover): add NoSurface story and update PopoverContent to suppo…
jansaldo Jul 23, 2026
c66222a
fix(rich-text-editor): correct highlight palette to Figma's 12 swatch…
jansaldo Jul 23, 2026
2a95275
fix(rich-text-editor): reorder toolbar to match Figma, add divider be…
jansaldo Jul 23, 2026
6249810
feat(rich-text-editor): add gray panel + white card chrome matching F…
jansaldo Jul 23, 2026
0a3054c
feat(rich-text): add documentFromMarkdown for LLM Markdown summary in…
jansaldo Jul 23, 2026
1aed6be
feat(rich-text-editor): add Markdown-ingestion story, verify Figma-fi…
jansaldo Jul 23, 2026
f05cdf3
fix(rich-text-editor): make body card max-height consumer-overridable
jansaldo Jul 23, 2026
4e5ff74
fix(rich-text): fix whitespace and inline emphasis bugs in documentFr…
jansaldo Jul 23, 2026
d120477
chore(icons): migrate from phosphor-react to @phosphor-icons/react
jansaldo Jul 23, 2026
9da1e14
feat(rich-text-editor): implement EditableRecoveryBoundary for handli…
jansaldo Jul 24, 2026
8d10f35
revert: exclude unrelated Showcase.stories.tsx rewrite from icon migr…
jansaldo Jul 24, 2026
af386f7
chore(icons): commit pnpm-lock.yaml update from the phosphor-react mi…
jansaldo Jul 24, 2026
6d8e927
chore(icons): fix the one committed import line d120477's revert lost…
jansaldo Jul 24, 2026
93f1774
fix(icons): correct previous commit that accidentally re-introduced t…
jansaldo Jul 24, 2026
fb28579
fix(rich-text-editor): real Figma icons, revert button order, move to…
jansaldo Jul 24, 2026
7ed6366
feat(rich-text-editor): show highlight swatch border only on the acti…
jansaldo Jul 24, 2026
59e3d63
fix(rich-text-editor): restore caret position after Enter split and B…
jansaldo Jul 24, 2026
f56355d
feat(rich-text-editor): continue lists on Enter, live-autoformat type…
jansaldo Jul 24, 2026
50631cb
feat(rich-text-editor): add Lists story, verify polish pass visually
jansaldo Jul 24, 2026
3f3ef7c
fix(rich-text-editor): render caret-hostable empty paragraphs and gua…
jansaldo Jul 24, 2026
5a0452e
chore(storybook): sort Showcase before Components in the sidebar
jansaldo Jul 24, 2026
2a9d9c3
feat(showcase): add missing components to the kitchen-sink gallery
jansaldo Jul 24, 2026
0809ab6
feat(rich-text-editor): update panel padding and integrate format but…
jansaldo Jul 24, 2026
9057a4a
chore(icons): finish the @phosphor-icons/react migration
jansaldo Jul 24, 2026
8625f85
chore(rich-text-editor): add Tiptap dependencies
jansaldo Jul 24, 2026
ec4337e
feat(rich-text): add JSONContent-based plain-text helpers
jansaldo Jul 24, 2026
61f4cc3
feat(rich-text-editor): replace contentEditable engine with Tiptap us…
jansaldo Jul 24, 2026
a5c4eea
fix(rich-text-editor): prevent spurious onChange on external document…
jansaldo Jul 24, 2026
0eb3ea8
feat(rich-text-editor): wire bold/italic/underline to Tiptap commands
jansaldo Jul 24, 2026
6ca4eeb
feat(rich-text-editor): wire highlight popover to multicolor Highligh…
jansaldo Jul 24, 2026
bcd2039
feat(rich-text-editor): wire Copy button to editor.getText()
jansaldo Jul 24, 2026
26339ee
test(rich-text-editor): verify native list behavior, add list CSS
jansaldo Jul 24, 2026
05c1e91
feat(rich-text): add Tiptap-backed Markdown import, replacing the han…
jansaldo Jul 24, 2026
8222d85
feat(rich-text)!: finalize Tiptap migration public API, bump to 1.0.0
jansaldo Jul 24, 2026
197ac9d
docs(changelog): list paragraphPlainText among removed rich-text exports
jansaldo Jul 24, 2026
945fea1
test(rich-text-editor): empirically verify EditableRecoveryBoundary i…
jansaldo Jul 24, 2026
14c9054
fix(select): restore per-option tooltips and single-item highlight
jansaldo Jul 27, 2026
8ece6d6
chore(deps): add @tiptap/extension-table
jansaldo Jul 27, 2026
f6c8226
feat(rich-text-editor): add table support, fix highlight colors, add …
jansaldo Jul 27, 2026
932e9cc
docs(showcase): enable Resumen in FeaturesMenu stories, fix icon imports
jansaldo Jul 27, 2026
ef77efb
chore(icons): switch to Icon-suffixed @phosphor-icons/react exports
jansaldo Jul 27, 2026
0f506c1
test(rich-text-editor): remove non-null assertions flagged by pnpm va…
jansaldo Jul 27, 2026
fc200d6
chore(tsconfig): drop deprecated baseUrl option
jansaldo Jul 27, 2026
d75c0c5
chore: revert premature 1.0.0 bump, drop CHANGELOG
jansaldo Jul 27, 2026
8a17702
feat(rich-text-editor): add table editing context menu, list toolbar …
jansaldo Jul 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .storybook/preview.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ import "./preview.css";

const preview: Preview = {
parameters: {
options: {
storySort: {
order: ["Overview", ["Showcase", "Showcase (EN)"], "Components"],
},
},
controls: {
matchers: {
color: /(background|color)$/i,
Expand Down
17 changes: 14 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,20 @@ self-host Archivo (weights 400/600/700).
Buttons & actions: `Button`, `ButtonLink`, `BigIconButton`, `ToolButton` ·
Inputs: `TextField`, `Search`, `Select`, `Checkbox`, `Radio`, `Switch`,
`Suggestion` · Feedback: `Callout`, `Toast`, `Tooltip`, `Spinner`,
`CheckCircle`, `Stepper` · Surfaces: `Card`, `Dialog`, `Popover` · Chrome:
`Toolbar`, `StatusBar`, `Tag`, `Logo` · Archives: `ArchiveProgress`,
`ArchiveTabs`, `ArchiveView`.
`CheckCircle`, `Stepper` · Surfaces: `Card`, `CardTool`, `Dialog`, `Popover` · Chrome:
`AppHeader`, `Toolbar`, `StatusBar`, `Tag`, `Logo` · Archives: `ArchiveProgress`,
`ArchiveTabs`, `ArchiveView` · Workflow: `WorkflowStepLayout`, `PageTitle`,
`AppFooter`.

`CardTool` owns the shared feature-card visuals, including its disabled state.
Consumers keep navigation in their router: wrap enabled cards in a link and
render disabled placeholders directly, so unavailable tools never become
interactive elements.

`WorkflowStepLayout` owns the common viewport, content width and single-scroll
page structure. Consumers provide `AppHeader`, `AppFooter`, back controls and
page actions through its slots; routing, step state and domain logic remain in
the application.

Browse every component and variant in Storybook (`pnpm storybook`).

Expand Down
20 changes: 17 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@aymurai/ui",
"version": "0.4.3",
"version": "0.5.0",
"description": "AymurAI shared React component library, extracted from the Figma UI Library and authored with Panda CSS.",
"license": "MIT",
"type": "module",
Expand Down Expand Up @@ -38,6 +38,7 @@
"build-storybook": "storybook build",
"lint": "biome check",
"lint:fix": "biome check --write",
"test": "vitest run",
"typecheck": "tsc -p tsconfig.build.json --noEmit",
"validate": "pnpm lint && pnpm typecheck",
"release": "pnpm build && pnpm pack --pack-destination ."
Expand All @@ -47,30 +48,43 @@
"react-dom": "^18 || ^19"
},
"dependencies": {
"@phosphor-icons/react": "^2.1.10",
"@radix-ui/react-context-menu": "^2.3.7",
"@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-popover": "^1.1.15",
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-switch": "^1.2.6",
"@radix-ui/react-tooltip": "^1.2.8",
"phosphor-react": "^1.4.1",
"@tiptap/core": "^3.28.0",
"@tiptap/extension-highlight": "^3.28.0",
"@tiptap/extension-table": "^3.28.0",
"@tiptap/markdown": "^3.28.0",
"@tiptap/pm": "^3.28.0",
"@tiptap/react": "^3.28.0",
"@tiptap/starter-kit": "^3.28.0",
"react-hot-toast": "^2.6.0"
},
"devDependencies": {
"@biomejs/biome": "^2.5.3",
"@pandacss/dev": "^1.8.1",
"@storybook/react": "^8.6.18",
"@storybook/react-vite": "^8.4.0",
"@testing-library/jest-dom": "^7.0.0",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
"@types/react": "^19",
"@types/react-dom": "^19",
"@vitejs/plugin-react": "^4.5.0",
"husky": "^9.1.7",
"jsdom": "^29.1.1",
"lint-staged": "^17.0.8",
"react": "^19",
"react-dom": "^19",
"storybook": "^8.4.0",
"typescript": "^5.9.2",
"vite": "^6.3.5",
"vite-plugin-dts": "^4.3.0"
"vite-plugin-dts": "^4.3.0",
"vitest": "^4.1.10"
},
"repository": {
"type": "git",
Expand Down
Loading
Loading