wimui 0.25.0 → 0.26.1

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 (85) hide show
  1. package/dist/components/_internal/ChartDataTable.cjs +2 -0
  2. package/dist/components/_internal/ChartDataTable.d.ts +43 -0
  3. package/dist/components/_internal/ChartDataTable.js +20 -0
  4. package/dist/components/_internal/chart-data-table.module.cjs +2 -0
  5. package/dist/components/_internal/chart-data-table.module.js +5 -0
  6. package/dist/components/_internal/chartTableData.cjs +0 -0
  7. package/dist/components/_internal/chartTableData.d.ts +53 -0
  8. package/dist/components/_internal/chartTableData.js +0 -0
  9. package/dist/components/ai/AgentStatus/agent-status.module.cjs +1 -1
  10. package/dist/components/ai/AgentStatus/agent-status.module.js +3 -3
  11. package/dist/components/ai/CodeDiffViewer/code-diff-viewer.module.cjs +1 -1
  12. package/dist/components/ai/CodeDiffViewer/code-diff-viewer.module.js +2 -2
  13. package/dist/components/ai/InteractiveGraph/interactive-graph.module.cjs +1 -1
  14. package/dist/components/ai/InteractiveGraph/interactive-graph.module.js +1 -1
  15. package/dist/components/charts/AreaChart/AreaChart.cjs +1 -1
  16. package/dist/components/charts/AreaChart/AreaChart.d.ts +7 -1
  17. package/dist/components/charts/AreaChart/AreaChart.js +85 -68
  18. package/dist/components/charts/BarChart/BarChart.cjs +1 -1
  19. package/dist/components/charts/BarChart/BarChart.d.ts +7 -1
  20. package/dist/components/charts/BarChart/BarChart.js +90 -73
  21. package/dist/components/charts/FunnelChart/FunnelChart.cjs +1 -1
  22. package/dist/components/charts/FunnelChart/FunnelChart.d.ts +7 -1
  23. package/dist/components/charts/FunnelChart/FunnelChart.js +60 -43
  24. package/dist/components/charts/GanttChart/gantt-chart.module.cjs +1 -1
  25. package/dist/components/charts/GanttChart/gantt-chart.module.js +1 -1
  26. package/dist/components/charts/GaugeChart/GaugeChart.cjs +1 -1
  27. package/dist/components/charts/GaugeChart/GaugeChart.d.ts +7 -1
  28. package/dist/components/charts/GaugeChart/GaugeChart.js +6 -4
  29. package/dist/components/charts/Heatmap/Heatmap.cjs +1 -1
  30. package/dist/components/charts/Heatmap/Heatmap.d.ts +7 -1
  31. package/dist/components/charts/Heatmap/Heatmap.js +101 -87
  32. package/dist/components/charts/LineChart/LineChart.cjs +1 -1
  33. package/dist/components/charts/LineChart/LineChart.d.ts +7 -1
  34. package/dist/components/charts/LineChart/LineChart.js +87 -70
  35. package/dist/components/charts/PieChart/PieChart.cjs +1 -1
  36. package/dist/components/charts/PieChart/PieChart.d.ts +7 -1
  37. package/dist/components/charts/PieChart/PieChart.js +65 -45
  38. package/dist/components/charts/RadarChart/RadarChart.cjs +1 -1
  39. package/dist/components/charts/RadarChart/RadarChart.d.ts +7 -1
  40. package/dist/components/charts/RadarChart/RadarChart.js +73 -56
  41. package/dist/components/charts/ScatterChart/ScatterChart.cjs +1 -1
  42. package/dist/components/charts/ScatterChart/ScatterChart.d.ts +7 -1
  43. package/dist/components/charts/ScatterChart/ScatterChart.js +85 -68
  44. package/dist/components/charts/Sparkline/Sparkline.cjs +1 -1
  45. package/dist/components/charts/Sparkline/Sparkline.js +52 -54
  46. package/dist/components/charts/Treemap/Treemap.cjs +1 -1
  47. package/dist/components/charts/Treemap/Treemap.d.ts +7 -1
  48. package/dist/components/charts/Treemap/Treemap.js +75 -61
  49. package/dist/components/data-display/CalendarHeatmap/calendar-heatmap.module.cjs +1 -1
  50. package/dist/components/data-display/CalendarHeatmap/calendar-heatmap.module.js +1 -1
  51. package/dist/components/data-display/Kanban/kanban.module.cjs +1 -1
  52. package/dist/components/data-display/Kanban/kanban.module.js +1 -1
  53. package/dist/components/data-display/NodeGraph/node-graph.module.cjs +1 -1
  54. package/dist/components/data-display/NodeGraph/node-graph.module.js +1 -1
  55. package/dist/components/feedback/Alert/alert.module.cjs +1 -1
  56. package/dist/components/feedback/Alert/alert.module.js +5 -5
  57. package/dist/components/feedback/ProgressRing/ProgressRing.d.ts +6 -1
  58. package/dist/components/feedback/Toast/toast.module.cjs +1 -1
  59. package/dist/components/feedback/Toast/toast.module.js +11 -11
  60. package/dist/components/form/FieldTemplate/field-template.module.cjs +1 -1
  61. package/dist/components/form/FieldTemplate/field-template.module.js +1 -1
  62. package/dist/components/helpers.cjs +1 -1
  63. package/dist/components/helpers.d.ts +18 -0
  64. package/dist/components/helpers.js +4 -1
  65. package/dist/components/media/Gallery/gallery.module.cjs +1 -1
  66. package/dist/components/media/Gallery/gallery.module.js +11 -11
  67. package/dist/components/navigation/SpeedDial/SpeedDial.d.ts +24 -2
  68. package/dist/i18n/generated/keys.d.ts +1 -1
  69. package/dist/llms-full.txt +106 -20
  70. package/dist/llms.txt +10 -10
  71. package/dist/locales/en/common.json +1 -49
  72. package/dist/locales/en/data-display.json +1 -2
  73. package/dist/locales/en/form.json +1 -23
  74. package/dist/locales/ja/common.json +1 -49
  75. package/dist/locales/ja/data-display.json +1 -2
  76. package/dist/locales/ja/form.json +1 -23
  77. package/dist/locales/pt/common.json +1 -49
  78. package/dist/locales/pt/data-display.json +1 -2
  79. package/dist/locales/pt/form.json +1 -23
  80. package/dist/robots.txt +5 -0
  81. package/dist/styles.css +2 -2
  82. package/dist/types/generated-tokens.d.ts +1 -1
  83. package/dist/wimui.umd.css +1 -1
  84. package/dist/wimui.umd.js +3 -3
  85. package/package.json +42 -27
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## What this is
6
6
 
7
- **wimui** v0.25.0 — a React 19 component library: 218 documented components across 10 categories, with design tokens, dark mode, i18n (en/ja/pt-BR) and WAI-ARIA compliant a11y. Peer deps: react ^19, react-dom ^19 (plus optional peers for specific components — see package.json).
7
+ **wimui** v0.26.1 — a React 19 component library: 218 documented components across 10 categories, with design tokens, dark mode, i18n (en/ja/pt-BR) and WAI-ARIA compliant a11y. Peer deps: react ^19, react-dom ^19 (plus optional peers for specific components — see package.json).
8
8
 
9
9
  ## Install & required setup
10
10
 
@@ -756,7 +756,7 @@ The container-query wrapper div is preserved to maintain responsive column behav
756
756
  - `glass: boolean` — Glassmorphism effect
757
757
  - `fluid: boolean` — Expand content to full width (disable the centered max-width container)
758
758
  - `background: "surface" | "surface-variant" | "transparent"` = "surface" — Background color
759
- - **InteractiveArea** — Interactive empty/drop zone area
759
+ - **InteractiveArea** — Foundation component for consistent interactive areas with borders and states.
760
760
  - `title: ReactNode` — Area title
761
761
  - `description: ReactNode` — Area description
762
762
  - `icon: ReactNode` — Icon to display
@@ -981,7 +981,7 @@ Useful for using the button styles with Link components (e.g. from React Router
981
981
  - `suffix: React.ReactNode` — Static text shown after the field, inside the same shell — a unit such as
982
982
  `kg`, `%` or `円`. It is announced with the field via `aria-describedby`,
983
983
  so the unit does not have to be repeated in the label.
984
- - `styles: React.ComponentProps<typeof InputBase>["styles"]` — Custom styles for internal parts
984
+ - `styles: { root?: string; inner?: string; icon?: string; icons?: string; iconItem?: string; iconButton?: string; }` — Custom styles for internal parts
985
985
  - `asChild: boolean` = false — Whether to render as a child element.
986
986
  - **ColorPicker** — Color selection picker
987
987
  - `intent: FieldIntent` = "default" — Semantic intent of the field (e.g. error state)
@@ -1009,7 +1009,7 @@ so the unit does not have to be repeated in the label.
1009
1009
  - `suffix: React.ReactNode` — Static text shown after the field, inside the same shell — a unit such as
1010
1010
  `kg`, `%` or `円`. It is announced with the field via `aria-describedby`,
1011
1011
  so the unit does not have to be repeated in the label.
1012
- - `styles: React.ComponentProps<typeof InputBase>["styles"]` — Custom styles for internal parts
1012
+ - `styles: { root?: string; inner?: string; icon?: string; icons?: string; iconItem?: string; iconButton?: string; }` — Custom styles for internal parts
1013
1013
  - `asChild: boolean` = false — Whether to render as a child element.
1014
1014
  - **Combobox** — Select with search
1015
1015
  - `options: ComboboxOption[]` = [] — List of suggestion options
@@ -1080,7 +1080,7 @@ so the unit does not have to be repeated in the label.
1080
1080
  - `suffix: React.ReactNode` — Static text shown after the field, inside the same shell — a unit such as
1081
1081
  `kg`, `%` or `円`. It is announced with the field via `aria-describedby`,
1082
1082
  so the unit does not have to be repeated in the label.
1083
- - `styles: React.ComponentProps<typeof InputBase>["styles"]` — Custom styles for internal parts
1083
+ - `styles: { root?: string; inner?: string; icon?: string; icons?: string; iconItem?: string; iconButton?: string; }` — Custom styles for internal parts
1084
1084
  - **DatePicker** — Date selection
1085
1085
  - `intent: FieldIntent` = "default" — Semantic intent of the field (e.g. error state)
1086
1086
  - `variant: "outline" | "ghost"` = "outline" — Visual style variant of the field
@@ -1197,10 +1197,21 @@ SCSS には誰も付けない `.default_intent` が「temporary name」のまま
1197
1197
  - `className: string` — Additional class names
1198
1198
  - `style: React.CSSProperties` — Style attribute
1199
1199
  - `aria-label: string` — Aria label for accessibility
1200
- - **IconButton** — Icon-only button
1200
+ - **IconButton** — A square button containing only an icon without a text label.
1201
1201
  - `iconName: React.ComponentProps<typeof Icon>["name"]` (required) — Icon name to display
1202
1202
  - `aria-label: string` (required) — Accessible label for the icon-only button
1203
- - **ImageCropper**Front-end image crop and rotate tool
1203
+ - `backgroundColor: T | (string & {})` Overrides the button background color with a design token. Usually the `variant` prop is enough; use this prop only as a last resort.
1204
+ - `size: Extract<ComponentSize, "sm" | "md" | "lg">` = "md" — Size of the button
1205
+ - `variant: "solid" | "outline" | "ghost"` = "outline" — Visual style variant of the button
1206
+ - `intent: ButtonIntent` = "default" — Design intent of the button (visual / semantic state). Unrelated to the ARIA role attribute.
1207
+ - `icon: React.ComponentProps<typeof Icon>["name"] | React.ReactNode` — Icon name or custom icon element
1208
+ - `loading: boolean` = false — Whether to show a loading indicator and disable interaction
1209
+ - `justify: "start" | "center" | "end" | "between"` = "center" — Horizontal alignment of the button content
1210
+ - `animateWidth: boolean` = false — Whether to animate the width change when label changes
1211
+ - `fullWidth: boolean` = false — Whether the button should take up the full width of its container
1212
+ - `styles: { root?: string; loader?: string; icon?: string; }` — Custom styles for internal parts
1213
+ - `className: string` — Additional class names
1214
+ - **ImageCropper** — Front-end image cropping and rotation tool.
1204
1215
  - `src: string` — URL or data URL of the image to crop
1205
1216
  - `aspectRatio: number` = 1 — Aspect ratio (width / height); 1 produces a square
1206
1217
  - `circular: boolean` = false — Whether to display a circular crop area (for profile images)
@@ -1247,7 +1258,7 @@ SCSS には誰も付けない `.default_intent` が「temporary name」のまま
1247
1258
  - `suffix: React.ReactNode` — Static text shown after the field, inside the same shell — a unit such as
1248
1259
  `kg`, `%` or `円`. It is announced with the field via `aria-describedby`,
1249
1260
  so the unit does not have to be repeated in the label.
1250
- - `styles: React.ComponentProps<typeof InputBase>["styles"]` — Custom styles for internal parts
1261
+ - `styles: { root?: string; inner?: string; icon?: string; icons?: string; iconItem?: string; iconButton?: string; }` — Custom styles for internal parts
1251
1262
  - `asChild: boolean` = false — Whether to render as a child element.
1252
1263
  - **InputBase** — Standardizes the visual container, icon slots (Prefix/Suffix), and clear button behavior for text-based inputs.
1253
1264
  - `children: React.ReactNode` (required) — Inner form control element(s) wrapped by the shell
@@ -1303,7 +1314,7 @@ make room rather than running underneath it.
1303
1314
  - `suffix: React.ReactNode` — Static text shown after the field, inside the same shell — a unit such as
1304
1315
  `kg`, `%` or `円`. It is announced with the field via `aria-describedby`,
1305
1316
  so the unit does not have to be repeated in the label.
1306
- - `styles: React.ComponentProps<typeof InputBase>["styles"]` — Custom styles for internal parts
1317
+ - `styles: { root?: string; inner?: string; icon?: string; icons?: string; iconItem?: string; iconButton?: string; }` — Custom styles for internal parts
1307
1318
  - `asChild: boolean` = false — Whether to render as a child element.
1308
1319
  - **LinkButton** — Anchor styled as button
1309
1320
  - `iconPosition: "left" | "right"` = "left" — Position of the icon relative to the label
@@ -1379,9 +1390,9 @@ box and receives a **1-based** position — the first box is `1`, not `0`.
1379
1390
  - `suffix: React.ReactNode` — Static text shown after the field, inside the same shell — a unit such as
1380
1391
  `kg`, `%` or `円`. It is announced with the field via `aria-describedby`,
1381
1392
  so the unit does not have to be repeated in the label.
1382
- - `styles: React.ComponentProps<typeof InputBase>["styles"]` — Custom styles for internal parts
1393
+ - `styles: { root?: string; inner?: string; icon?: string; icons?: string; iconItem?: string; iconButton?: string; }` — Custom styles for internal parts
1383
1394
  - `asChild: boolean` = false — Whether to render as a child element.
1384
- - **PasswordStrength** — Visual meter to indicate password security level (aka Strength Meter)
1395
+ - **PasswordStrength** — Visual meter to indicate password security level. (aka Strength Meter)
1385
1396
  - `password: string` = "" — Password string to evaluate
1386
1397
  - `score: 0 | 1 | 2 | 3 | 4` — Strength score (the default calculation is used when omitted)
1387
1398
  0: very weak, 1: weak, 2: fair, 3: strong, 4: very strong
@@ -1533,7 +1544,7 @@ so the unit does not have to be repeated in the label.
1533
1544
  - `suffix: React.ReactNode` — Static text shown after the field, inside the same shell — a unit such as
1534
1545
  `kg`, `%` or `円`. It is announced with the field via `aria-describedby`,
1535
1546
  so the unit does not have to be repeated in the label.
1536
- - `styles: React.ComponentProps<typeof InputBase>["styles"]` — Custom styles for internal parts
1547
+ - `styles: { root?: string; inner?: string; icon?: string; icons?: string; iconItem?: string; iconButton?: string; }` — Custom styles for internal parts
1537
1548
  - `asChild: boolean` = false — Whether to render as a child element.
1538
1549
  - **SegmentedControl** — Button-style controls for switching between a small set of mutually exclusive options (aka Segmented Buttons, Segmented Picker)
1539
1550
  - `options: Option[]` (required) — List of segment options
@@ -1605,7 +1616,7 @@ so the unit does not have to be repeated in the label.
1605
1616
  - `layout: "vertical" | "horizontal"` = "vertical" — Layout direction of label and field
1606
1617
  - `id: string` — Custom ID
1607
1618
  - `asChild: boolean` = false — Whether to render as a child element.
1608
- - `styles: React.ComponentPropsWithoutRef<typeof FieldTemplate>["styles"]` — Custom styles for internal parts
1619
+ - `styles: { root?: string; labelWrapper?: string; label?: string; content?: string; error?: string; }` — Custom styles for internal parts
1609
1620
  - **SmartSearchInput** — Smart search input enabling both traditional search and AI prompting.
1610
1621
  - `intent: FieldIntent` = "default" — Semantic intent of the field (e.g. error state)
1611
1622
  - `variant: "outline" | "ghost"` = "outline" — Visual style variant of the field
@@ -1651,7 +1662,7 @@ but the toggle only shows a chevron, so it needs one of its own.
1651
1662
  - `error: string` — Error message
1652
1663
  - `required: boolean` — Whether to show the required indicator
1653
1664
  - `disabled: boolean` — Whether the whole group is disabled
1654
- - **TagInput** — Field for entering free-form text as tags (aka Token Field, Chips Input)
1665
+ - **TagInput** — Input field for creating free-form tags. (aka Token Field, Chips Input)
1655
1666
  - `value: string[]` — List of tags (controlled)
1656
1667
  - `defaultValue: string[]` = [] — Initial list of tags (uncontrolled)
1657
1668
  - `onChange: (tags: string[]) => void` — Callback when the tags change
@@ -1715,7 +1726,7 @@ but the toggle only shows a chevron, so it needs one of its own.
1715
1726
  - `suffix: React.ReactNode` — Static text shown after the field, inside the same shell — a unit such as
1716
1727
  `kg`, `%` or `円`. It is announced with the field via `aria-describedby`,
1717
1728
  so the unit does not have to be repeated in the label.
1718
- - `styles: React.ComponentProps<typeof InputBase>["styles"]` — Custom styles for internal parts
1729
+ - `styles: { root?: string; inner?: string; icon?: string; icons?: string; iconItem?: string; iconButton?: string; }` — Custom styles for internal parts
1719
1730
  - `asChild: boolean` = false — Whether to render as a child element.
1720
1731
  - **ToggleGroup** — Toggleable buttons
1721
1732
  - `options: Option[]` (required) — List of toggle options
@@ -1880,7 +1891,43 @@ origin while the card it was meant to cover was 1248x75.
1880
1891
  - `className: string` — Additional class name
1881
1892
  - **Progress** — Progress bar
1882
1893
  - ⚠️ Not the same as elsewhere: Material's "Progress Indicator" covers indeterminate spinners as well. WIM's `Progress` is determinate and linear only — for the indeterminate case use `Spinner`.
1894
+ - `value: number` = 0 — Current value of the progress bar.
1895
+ @default 0
1896
+ - `max: number` = 100 — Maximum value of the progress bar.
1897
+ @default 100
1898
+ - `intent: IndicatorIntent` = "primary" — Intent (semantic color) of the bar.
1899
+ @default "primary"
1900
+ - `size: Extract<ComponentSize, "sm" | "md" | "lg">` = "md" — Size of the bar.
1901
+ @default "md"
1902
+ - `label: string` — Text label displayed above the bar. Also used as the accessible name unless
1903
+ `aria-label` / `aria-labelledby` is given.
1904
+
1905
+ A progress bar always carries `role="progressbar"`, and a progressbar with no
1906
+ accessible name is a WCAG failure (axe `aria-progressbar-name`, serious). The
1907
+ type therefore requires one of `label` / `aria-label` / `aria-labelledby`.
1908
+ - `showValue: boolean` = false — Whether to display the current value as a percentage.
1909
+ @default false
1910
+ - `indeterminate: boolean` = false — If true, shows an indeterminate animation instead of a value.
1911
+ @default false
1883
1912
  - **ProgressRing** — ProgressRing description.
1913
+ - `value: number` = 0 — Current value of the progress ring.
1914
+ @default 0
1915
+ - `max: number` = 100 — Maximum value of the progress ring.
1916
+ @default 100
1917
+ - `intent: IndicatorIntent` = "primary" — Intent (semantic color) of the ring.
1918
+ @default "primary"
1919
+ - `size: Extract<ComponentSize, "sm" | "md" | "lg">` = "md" — Size of the ring.
1920
+ @default "md"
1921
+ - `label: string` — Text label displayed below the ring. Also used as the accessible name unless
1922
+ `aria-label` / `aria-labelledby` is given.
1923
+
1924
+ A progress ring always carries `role="progressbar"`, and a progressbar with no
1925
+ accessible name is a WCAG failure (axe `aria-progressbar-name`, serious). The
1926
+ type therefore requires one of `label` / `aria-label` / `aria-labelledby`.
1927
+ - `showValue: boolean` = false — Whether to display the current value as a percentage inside the ring.
1928
+ @default false
1929
+ - `indeterminate: boolean` = false — If true, shows an indeterminate animation instead of a value.
1930
+ @default false
1884
1931
  - **Result** — Task status indicator
1885
1932
  - `intent: Extract< WimIntent, "default" | "success" | "danger" | "info" | "warning" >` = "default" — Semantic intent — determines the icon and color.
1886
1933
  @default "default"
@@ -2060,7 +2107,16 @@ Useful for URL-based pagination (e.g. wrap with a Link via PaginationPage asChil
2060
2107
  - `actions: SpeedDialAction[]` (required) — Actions to display when SpeedDial is open
2061
2108
  - `icon: keyof typeof ALL_ICONS` = "PlusIcon" — Icon name for the main button when closed
2062
2109
  - `activeIcon: keyof typeof ALL_ICONS` = "CloseIcon" — Icon name for the main button when open
2063
- - `direction: "up" | "down" | "left" | "right"` = "up" — Direction in which actions expand
2110
+ - `direction: "up" | "down" | "left" | "right"` = "up" — Direction in which actions expand.
2111
+
2112
+ **The caller picks a direction that has room.** Actions are placed with
2113
+ plain CSS (`left: 100%` and friends) and are never measured, so this
2114
+ component does not flip when the viewport runs out — a `right` dial placed
2115
+ near the right edge pushes the page into a horizontal scroll. Anchor a
2116
+ `right` dial to the leading edge (and a `left` one to the trailing edge);
2117
+ `up` / `down` already grow inward from the trailing corner (T175).
2118
+
2119
+ @default "up"
2064
2120
  - `trigger: "hover" | "click"` = "hover" — Trigger mode to open the SpeedDial
2065
2121
  - `open: boolean` — Controlled open state
2066
2122
  - `onOpenChange: (open: boolean) => void` — Callback when open state changes
@@ -2331,7 +2387,7 @@ drops secondary text below the AA contrast floor.
2331
2387
  - `pauseOnHover: boolean` = true — Whether to pause the animation on hover.
2332
2388
  - `vertical: boolean` = false — Whether to scroll vertically.
2333
2389
  - `repeat: number` = 2 — Number of times the content is repeated. May need adjusting for a seamless loop. Defaults to `2`.
2334
- - **NodeGraph** — Interactive node-based flowchart and pipeline editor
2390
+ - **NodeGraph** — Visualizes complex networks and relationships between nodes.
2335
2391
  - `nodes: Node[]` (required) — Controlled nodes
2336
2392
  - `edges: Edge[]` (required) — Controlled edges
2337
2393
  - `onNodesChange: OnNodesChange` (required) — Called when nodes change (position, selection, add, removal)
@@ -2402,7 +2458,7 @@ When omitted, both Backspace and Delete work.
2402
2458
  @default true
2403
2459
  - `fallback: React.ReactNode` — Content shown when the date cannot be parsed.
2404
2460
  - `asChild: boolean` = false — If true, the component will be rendered as its child, merging its props onto that child.
2405
- - **ScheduleView** — Time-grid calendar with drag-and-drop scheduling
2461
+ - **ScheduleView** — Displays tasks or events on a chronological timeline or calendar view.
2406
2462
  - `events: ScheduleViewEvent[]` = [] — List of calendar events
2407
2463
  - `initialView: "timeGridWeek" | "timeGridDay" | "dayGridMonth"` = "timeGridWeek" — Initial view mode
2408
2464
  - `editable: boolean` = true — Whether events can be dragged to new times
@@ -2864,6 +2920,9 @@ the value, so cutting the axis lies about the ratio between them.
2864
2920
  @default true
2865
2921
  - `animated: boolean` = false — If true, animates the chart on mount.
2866
2922
  @default false
2923
+ - `aria-label: string` — Accessible name for the chart. Defaults to `title` when omitted; pass this
2924
+ when the chart has no visible title, or when the title is not descriptive
2925
+ enough on its own.
2867
2926
  - **BarChart** — Bar charts
2868
2927
  - `data: ChartDataPoint[]` (required) — Data to display in the chart.
2869
2928
  - `keys: string[]` (required) — Keys in the data objects to render as bars (series).
@@ -2881,6 +2940,9 @@ the value, so cutting the axis lies about the ratio between them.
2881
2940
  - `title: string` — Optional title displayed above the chart.
2882
2941
  - `animated: boolean` = false — If true, animates the chart on mount.
2883
2942
  @default false
2943
+ - `aria-label: string` — Accessible name for the chart. Defaults to `title` when omitted; pass this
2944
+ when the chart has no visible title, or when the title is not descriptive
2945
+ enough on its own.
2884
2946
  - **FunnelChart** — Process stage abandonment chart
2885
2947
  - `data: ChartDataPoint[]` (required) — Data to display in the chart. Each entry represents one funnel stage.
2886
2948
  - `dataKey: string` (required) — The key in the data objects that represents the value of each stage.
@@ -2892,6 +2954,9 @@ the value, so cutting the axis lies about the ratio between them.
2892
2954
  - `title: string` — Optional title displayed above the chart.
2893
2955
  - `animated: boolean` = false — If true, animates the chart on mount.
2894
2956
  @default false
2957
+ - `aria-label: string` — Accessible name for the chart. Defaults to `title` when omitted; pass this
2958
+ when the chart has no visible title, or when the title is not descriptive
2959
+ enough on its own.
2895
2960
  - **GanttChart** — Project schedule and timeline visualization
2896
2961
  - `tasks: GanttTask[]` (required) — Tasks to render as bars in the chart.
2897
2962
  - `startDate: Date` — Start of the visible date range. Defaults to the earliest task start date.
@@ -2919,6 +2984,9 @@ the value, so cutting the axis lies about the ratio between them.
2919
2984
  - `color: string` — Color of the gauge arc. Defaults to the first chart color.
2920
2985
  - `animated: boolean` = false — If true, animates the chart on mount.
2921
2986
  @default false
2987
+ - `aria-label: string` — Accessible name for the chart. Defaults to `title` when omitted; pass this
2988
+ when the chart has no visible title, or when the title is not descriptive
2989
+ enough on its own.
2922
2990
  - **Heatmap** — Graphical representation of data where individual values are contained in a matrix as colors.
2923
2991
  - `data: { x: string; y: string; value: number }[]` (required) — Cells to display. Each entry maps an x/y category pair to a value.
2924
2992
  - `xAxisKey: string[]` (required) — Ordered list of X axis category labels.
@@ -2932,6 +3000,9 @@ the value, so cutting the axis lies about the ratio between them.
2932
3000
  @default ["var(--wim-color-surface-variant)", "var(--wim-color-chart-primary)"]
2933
3001
  - `animated: boolean` = false — Whether to animate the cells on mount.
2934
3002
  @default false
3003
+ - `aria-label: string` — Accessible name for the chart. Defaults to `title` when omitted; pass this
3004
+ when the chart has no visible title, or when the title is not descriptive
3005
+ enough on its own.
2935
3006
  - **LineChart** — Line charts
2936
3007
  - `data: ChartDataPoint[]` (required) — Data to display in the chart.
2937
3008
  - `keys: string[]` (required) — Keys in the data objects to render as lines (series).
@@ -2949,6 +3020,9 @@ line on a 0–100 axis).
2949
3020
  @default [0, "auto"]
2950
3021
  - `animated: boolean` = false — If true, animates the chart on mount.
2951
3022
  @default false
3023
+ - `aria-label: string` — Accessible name for the chart. Defaults to `title` when omitted; pass this
3024
+ when the chart has no visible title, or when the title is not descriptive
3025
+ enough on its own.
2952
3026
  - **PieChart** — Proportional parts of a whole chart
2953
3027
  - `data: { name: string; value: number }[]` (required) — Slices to display. Each entry has a name (label) and a value.
2954
3028
  - `height: number` = 300 — The height of the chart in pixels.
@@ -2960,6 +3034,9 @@ line on a 0–100 axis).
2960
3034
  @default false
2961
3035
  - `animated: boolean` = false — If true, animates the chart on mount.
2962
3036
  @default false
3037
+ - `aria-label: string` — Accessible name for the chart. Defaults to `title` when omitted; pass this
3038
+ when the chart has no visible title, or when the title is not descriptive
3039
+ enough on its own.
2963
3040
  - **RadarChart** — Multivariate data on concentric axes chart
2964
3041
  - `data: ChartDataPoint[]` (required) — Data to display in the chart.
2965
3042
  - `keys: string[]` (required) — Keys in the data objects to render as radar areas (series).
@@ -2971,6 +3048,9 @@ line on a 0–100 axis).
2971
3048
  - `title: string` — Optional title displayed above the chart.
2972
3049
  - `animated: boolean` = false — If true, animates the chart on mount.
2973
3050
  @default false
3051
+ - `aria-label: string` — Accessible name for the chart. Defaults to `title` when omitted; pass this
3052
+ when the chart has no visible title, or when the title is not descriptive
3053
+ enough on its own.
2974
3054
  - **ScatterChart** — Scatter plots
2975
3055
  - `data: { x: number; y: number; z?: number; name: string }[]` (required) — Points to plot. `z` optionally controls the point size.
2976
3056
  - `xAxisName: string` = "X" — Name of the X axis, shown in the tooltip.
@@ -2988,6 +3068,9 @@ line on a 0–100 axis).
2988
3068
  - `title: string` — Optional title displayed above the chart.
2989
3069
  - `animated: boolean` = false — If true, animates the chart on mount.
2990
3070
  @default false
3071
+ - `aria-label: string` — Accessible name for the chart. Defaults to `title` when omitted; pass this
3072
+ when the chart has no visible title, or when the title is not descriptive
3073
+ enough on its own.
2991
3074
  - **Sparkline** — Tiny inline trend chart
2992
3075
  - `data: number[]` (required) — Sequence of values to plot, in order
2993
3076
  - `type: "line" | "area" | "bar"` = "line" — Visual form of the sparkline
@@ -3010,6 +3093,9 @@ line on a 0–100 axis).
3010
3093
  - `width: string | number` = "100%" — The width of the chart (e.g., "100%", 500).
3011
3094
  @default "100%"
3012
3095
  - `title: string` — Optional title displayed above the chart.
3096
+ - `aria-label: string` — Accessible name for the chart. Defaults to `title` when omitted; pass this
3097
+ when the chart has no visible title, or when the title is not descriptive
3098
+ enough on its own.
3013
3099
 
3014
3100
  ### ai — `import { … } from "wimui/ai"`
3015
3101
 
@@ -3085,7 +3171,7 @@ written in the markdown. Default `"2xl"` keeps the historical mapping
3085
3171
  - `showContext: boolean` = true — Whether to show the context-length metadata in the dropdown
3086
3172
  - `labels: { /** Placeholder shown when nothing is selected */ placeholder?: string; /** Prefix for the context-length meta (default "Context") */ contextLabel?: string; /** Prefix for the input price meta (default "In") */ inputLabel?: string; /** Prefix for the output price meta (default "Out") */ outputLabel?: string; /** Suffix appended to prices (default "/1M") */ perTokensLabel?: string; /** Accessible label for the trigger button */ triggerAriaLabel?: string; }` — Labels for internationalization
3087
3173
  - `className: string` — Additional class names
3088
- - **PromptInput** — Auto-resizing prompt input with send and attachment actions
3174
+ - **PromptInput** — Interactive input optimized for AI prompt engineering with multi-line support and action triggers.
3089
3175
  - `value: string` — Current text value (controlled)
3090
3176
  - `defaultValue: string` = "" — Default value (uncontrolled)
3091
3177
  - `onChange: (value: string) => void` — Callback when value changes
@@ -3110,7 +3196,7 @@ written in the markdown. Default `"2xl"` keeps the historical mapping
3110
3196
  - `index: number` — Numeric citation index shown as a badge (e.g. 1, 2, 3)
3111
3197
  - `domain: string` — Domain label shown below the title (auto-derived from url when omitted)
3112
3198
  - `className: string` — Additional CSS class
3113
- - **StreamingText** — Streaming Markdown renderer for AI-generated responses
3199
+ - **StreamingText** — Renders text with a typewriter-like animation, ideal for AI chat responses.
3114
3200
  - `content: string` (required) — The markdown text content to render
3115
3201
  - `isStreaming: boolean` = false — When true, a blinking cursor is shown at the end of the content
3116
3202
  - `components: Components` — Override the default markdown component renderers
package/dist/llms.txt CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## What this is
6
6
 
7
- **wimui** v0.25.0 — a React 19 component library: 218 documented components across 10 categories, with design tokens, dark mode, i18n (en/ja/pt-BR) and WAI-ARIA compliant a11y. Peer deps: react ^19, react-dom ^19 (plus optional peers for specific components — see package.json).
7
+ **wimui** v0.26.1 — a React 19 component library: 218 documented components across 10 categories, with design tokens, dark mode, i18n (en/ja/pt-BR) and WAI-ARIA compliant a11y. Peer deps: react ^19, react-dom ^19 (plus optional peers for specific components — see package.json).
8
8
 
9
9
  ## Install & required setup
10
10
 
@@ -204,7 +204,7 @@ export function BillingOverview() {
204
204
  - **Grid** — Flexbox or CSS Grid system
205
205
  - **Group** — Flexible grouping
206
206
  - **Header** — Upper navigation
207
- - **InteractiveArea** — Interactive empty/drop zone area
207
+ - **InteractiveArea** — Foundation component for consistent interactive areas with borders and states.
208
208
  - **Masonry** — Waterfall grid
209
209
  - **Navbar** — Primary navigation
210
210
  - **ScrollArea** — A custom scrollbar component that provides high-performance, cross-browser consistent themes while maintaining a native-like feel.
@@ -238,8 +238,8 @@ export function BillingOverview() {
238
238
  - **FieldTemplate** — Standardizes label placement, required markings, and error message display for all form-related components.
239
239
  - **FileUpload** — File selection
240
240
  - **FloatButton** — Floating action buttons
241
- - **IconButton** — Icon-only button
242
- - **ImageCropper** — Front-end image crop and rotate tool
241
+ - **IconButton** — A square button containing only an icon without a text label.
242
+ - **ImageCropper** — Front-end image cropping and rotation tool.
243
243
  - **InlineEdit** — A component that allows users to switch between a view-only mode and an editable mode in-place. (aka Editable Text)
244
244
  - **Input** — Single-line input fields for text, numbers, or emails
245
245
  - **InputBase** — Standardizes the visual container, icon slots (Prefix/Suffix), and clear button behavior for text-based inputs.
@@ -251,7 +251,7 @@ export function BillingOverview() {
251
251
  - **NumberInput** — Input with step adjustments (aka Spin Button, Numeric Stepper)
252
252
  - **OtpInput** — One-time password fields
253
253
  - **PasswordInput** — Password with toggle
254
- - **PasswordStrength** — Visual meter to indicate password security level (aka Strength Meter)
254
+ - **PasswordStrength** — Visual meter to indicate password security level. (aka Strength Meter)
255
255
  - **PhoneInput** — International phone number input
256
256
  - **QueryBuilder** — Visual builder for constructing complex search queries.
257
257
  - **Radio** — Single choice
@@ -268,7 +268,7 @@ export function BillingOverview() {
268
268
  - **SplitButton** — SplitButton description.
269
269
  - **Switch** — A binary switch for instantly toggling settings between on and off states (aka Toggle, Toggle Switch)
270
270
  - **SwitchGroup** — Shared state switches
271
- - **TagInput** — Field for entering free-form text as tags (aka Token Field, Chips Input)
271
+ - **TagInput** — Input field for creating free-form tags. (aka Token Field, Chips Input)
272
272
  - **Textarea** — Multi-line input fields for longer text entries like descriptions or comments
273
273
  - **ThemeToggle** — Light / dark / system theme switcher
274
274
  - **TimePicker** — Time selection
@@ -340,13 +340,13 @@ export function BillingOverview() {
340
340
  - **List** — Structurally organized items in bullet points or numbered formats
341
341
  - **Markdown** — A component for safely rendering text in Markdown format.
342
342
  - **Marquee** — Scrolling text animation (aka Ticker)
343
- - **NodeGraph** — Interactive node-based flowchart and pipeline editor
343
+ - **NodeGraph** — Visualizes complex networks and relationships between nodes.
344
344
  - **PullToRefresh** — Pull-to-refresh utility for enhancing mobile user experience.
345
345
  - **QRCode** — QR generator
346
346
  - **RangeCalendar** — Range calendar view
347
347
  - **Reaction** — Display emoji reaction buttons with toggleable state and counts
348
348
  - **RelativeTime** — Display a timestamp as a localized relative phrase ("3 minutes ago", "yesterday") that updates automatically as time passes.
349
- - **ScheduleView** — Time-grid calendar with drag-and-drop scheduling
349
+ - **ScheduleView** — Displays tasks or events on a chronological timeline or calendar view.
350
350
  - **SortableList** — Item rearrangement and reordering
351
351
  - **Stats** — A component to highlight key performance indicators and metrics
352
352
  - **SwipeAction** — Mobile-friendly swipe actions (delete, archive) for list items.
@@ -421,9 +421,9 @@ export function BillingOverview() {
421
421
  - **InteractiveGraph** — InteractiveGraph provides a canvas for visualizing node-based data. Ideal for RAG knowledge bases, agent workflows, or state machines.
422
422
  - **MarkdownRenderer** — MarkdownRenderer converts a markdown string into WIM UI components. It uses react-markdown under the hood and applies WIM's typography system.
423
423
  - **ModelSelector** — ModelSelector is a dropdown for switching between AI models, surfacing the metadata that matters when choosing one — context window size and per-token pricing.
424
- - **PromptInput** — Auto-resizing prompt input with send and attachment actions
424
+ - **PromptInput** — Interactive input optimized for AI prompt engineering with multi-line support and action triggers.
425
425
  - **SourceCitation** — Displays cited sources with title, domain, and external link for AI-generated content.
426
- - **StreamingText** — Streaming Markdown renderer for AI-generated responses
426
+ - **StreamingText** — Renders text with a typewriter-like animation, ideal for AI chat responses.
427
427
  - **Terminal** — Renders terminal-style output with ANSI color support, prompt prefixes, and copy/clear controls.
428
428
  - **ThoughtProcess** — Visualizes AI reasoning steps and execution states in a timeline format.
429
429
  - **ThreadList** — ThreadList renders a conversation-history sidebar for AI chat apps — a scrollable list of past threads with an optional new-conversation action and per-thread deletion.
@@ -23,7 +23,6 @@
23
23
  "go_to_next_page": "Go to next page",
24
24
  "go_to_page": "Go to page {{page}}",
25
25
  "go_to_prev_page": "Go to previous page",
26
- "guideline_desc": "Consider assistive technologies and diverse viewing environments.",
27
26
  "hide_password": "Hide password",
28
27
  "icon_fallback": "Icon: {{name}}",
29
28
  "items_per_page": "Items per page",
@@ -207,29 +206,6 @@
207
206
  "description": "Description",
208
207
  "design_intent_title": "Design Intent",
209
208
  "fieldTemplate_a11y_desc": "Connects the label to the input via id, and the error message via aria-describedby.",
210
- "fieldTemplate_anatomy_content_desc": "The actual component slot (Input, Select, etc.).",
211
- "fieldTemplate_anatomy_content_label": "Field Area",
212
- "fieldTemplate_anatomy_error_desc": "Validation feedback text displayed below the field.",
213
- "fieldTemplate_anatomy_error_label": "Error Message",
214
- "fieldTemplate_anatomy_label_desc": "The name of the field displayed above or beside the input.",
215
- "fieldTemplate_anatomy_label_label": "Label",
216
- "fieldTemplate_anatomy_required_desc": "An asterisk or (required) text appended to the label.",
217
- "fieldTemplate_anatomy_required_label": "Required Indicator",
218
- "fieldTemplate_best_practice_1": "Use horizontal layout for dense desktop forms.",
219
- "fieldTemplate_best_practice_2": "Clearly highlight required fields to reduce user errors.",
220
- "fieldTemplate_choice_alt_when": "Use InputBase directly for internal controls or dense UIs where a label is not required.",
221
- "fieldTemplate_choice_matrix_desc": "Comparing FieldTemplate against using InputBase directly.",
222
- "fieldTemplate_choice_use_when": "Use for virtually all user-facing form fields that require a label, error message, or required indicator.",
223
- "fieldTemplate_content_guideline_1": "Keep labels short and descriptive.",
224
- "fieldTemplate_content_guideline_2": "Error messages should be specific and actionable.",
225
- "fieldTemplate_design_intent": "Standardizes label and error presentation to ensure consistent form layout across the product.",
226
- "fieldTemplate_i18n_desc": "Label and error text are provided by the consumer; the component itself has no hardcoded strings.",
227
- "fieldTemplate_keyboard_desc": "Focus management follows the wrapped input component behavior.",
228
- "fieldTemplate_motion_desc": "Error messages fade in to draw attention without being disruptive.",
229
- "fieldTemplate_scenario_1": "A standard user registration form.",
230
- "fieldTemplate_scenario_2": "A settings page with vertical or horizontal field layouts.",
231
- "label_title": "Descriptive text for input fields, including required/optional marks",
232
- "label_long_desc": "A component for displaying descriptions or captions for form elements.",
233
209
  "label_design_intent": "Provides clear, accessible labels for form controls to guide user input.",
234
210
  "label_choice_self_when": "Use when you need to provide a text label for a single form input.",
235
211
  "label_choice_alt_when": "Use Heading for section titles or FieldTemplate for a complete field wrapper with error handling.",
@@ -240,7 +216,7 @@
240
216
  "label_anatomy_content": "The actual descriptive text for the form element.",
241
217
  "label_content_guideline": "Keep labels short, descriptive, and avoid using them for help text.",
242
218
  "label_motion_desc": "No specific interactions or animations.",
243
- "label_a11y_desc": "Ensure the Label is associated with an input via htmlFor/id.",
219
+ "label_a11y_desc": "This renders a real <label>, so passing htmlFor is what connects it to its control — that association is what lets a click on the text focus the field and what gives the field its accessible name. When asChild is used the element is replaced but the same attributes are merged onto the child, so the association must still be maintained by the caller. The required and optional markers are drawn by FieldLabelContent and are aria-hidden, because the requirement belongs on the control itself (aria-required) rather than being read as part of the label text.",
244
220
  "label_scenario_1": "A standard contact form.",
245
221
  "label_scenario_2": "An admin dashboard settings panel.",
246
222
  "label_best_practice_1": "Keep labels visible at all times.",
@@ -253,25 +229,6 @@
253
229
  "i18n_docgen_none": "This component renders no text of its own — localize any content you pass into it.",
254
230
  "i18n_title": "Internationalization (i18n)",
255
231
  "inputBase_a11y_desc": "Ensures interactive icons have correct roles and labels.",
256
- "inputBase_anatomy_content_desc": "Space for the actual input value or selected value.",
257
- "inputBase_anatomy_content_label": "Content Area",
258
- "inputBase_anatomy_root_desc": "The main wrapper that defines the border and background.",
259
- "inputBase_anatomy_root_label": "Container",
260
- "inputBase_best_practice_1": "Use semantic colors for validation states.",
261
- "inputBase_best_practice_2": "Always provide a visible label externally (via FieldTemplate).",
262
- "inputBase_choice_alt_when": "Use FieldTemplate when you need to wrap an existing input component with a label or error message.",
263
- "inputBase_choice_matrix_desc": "Deciding between InputBase and FieldTemplate.",
264
- "inputBase_choice_use_when": "Use when building a custom input field (e.g., Search, Select) that needs uniform border and icon styling.",
265
- "inputBase_content_guideline_1": "Keep icon usage minimal to avoid visual clutter.",
266
- "inputBase_content_guideline_2": "Ensure the focus ring is clearly visible.",
267
- "inputBase_design_intent": "InputBase provides a consistent UI shell for text-based inputs, managing icon placement, clear button, and semantic state styling.",
268
- "inputBase_i18n_desc": "All visible text is provided by the consumer; InputBase itself has no hardcoded strings.",
269
- "inputBase_keyboard_desc": "Delegates keyboard behavior to the wrapped native input element.",
270
- "inputBase_motion_desc": "Subtle transitions on border color and clear button visibility.",
271
- "inputBase_responsive_desc": "The container scales with its parent; icon widths remain fixed.",
272
- "inputBase_scenario_1": "A custom search box with an action icon.",
273
- "inputBase_scenario_2": "A complex input wrapper for specialized data entry.",
274
- "inputBase_tokens_desc": "Border, background, and spacing tokens control the visual container styling.",
275
232
  "recommendation": "Recommendation",
276
233
  "scenario": "Scenario",
277
234
  "summary": "Summary",
@@ -352,7 +309,6 @@
352
309
  "anatomy_module_note": "This component uses CSS Modules; the class names above are local names that are hashed at build time. To override styles, use the design token CSS variables instead of targeting these classes.",
353
310
  "test_title": "Testing",
354
311
  "test_description": "You can run the unit tests for this component by executing the following command:",
355
- "tokens_title": "Design Tokens",
356
312
  "usage": "Usage",
357
313
  "usage_scenario": "Usage Scenario",
358
314
  "transfer_i18n_desc": "Full support for localizing labels, placeholders, and status messages.",
@@ -412,10 +368,6 @@
412
368
  "json_viewer_responsive_desc": "Responsive container with horizontal scrolling for deep nesting.",
413
369
  "json_viewer_keyboard_desc": "Full keyboard support for tree navigation and copying.",
414
370
  "json_viewer_i18n_desc": "Toolbar labels and counts are localized.",
415
- "fieldTemplate_long_desc": "A wrapper that adds a label, error message, and required indicator to any input field.",
416
- "fieldTemplate_usage_desc": "Wrap any form control to provide a standardized label and error layout.",
417
- "inputBase_long_desc": "Internal primitive that underlies all text-based input components.",
418
- "inputBase_usage_desc": "Used mainly to build other components. Owns the input-container styling such as border, background, and icon placement.",
419
371
  "baseListItem_long_desc": "Internal list-row primitive for building selectable list behaviors.",
420
372
  "baseListItem_usage_desc": "Use as a primitive when composing list item interactions.",
421
373
  "std_column_component": "Component",
@@ -9,7 +9,6 @@
9
9
  "table": {
10
10
  "header_component": "Component",
11
11
  "header_overview": "Overview",
12
- "header_usage": "Usage Scenario",
13
12
  "header_placement": "Placement"
14
13
  }
15
- }
14
+ }
@@ -26,29 +26,7 @@
26
26
  "close": "Close",
27
27
  "dismiss": "Dismiss",
28
28
  "label": "Button",
29
- "guide_title": "Button Overview",
30
- "guide_desc": "Guidelines for choosing and implementing the correct button type for your interface.",
31
- "priority_weighting": "A matrix describing when to use Primary, Secondary, or Tertiary buttons.",
32
- "semantics_desc": "Buttons trigger actions, while Links change page location or scroll position.",
33
- "semantics_guide_ref": "Refer to the Link vs Button guide for more detailed information.",
34
- "standard_desc": "Standard rectangular button for general actions.",
35
- "standard_usage": "Main CTAs like Submit, Save, or Add Item.",
36
- "icon_usage": "Dense toolbars, media controls, or social sharing.",
37
- "link_desc": "A button styled like a text link for secondary navigating actions.",
38
- "group_desc": "A container that groups multiple logically related buttons together.",
39
- "group_usage": "Filter bars, pagination, or multi-step form actions.",
40
- "copy_desc": "A specialized button for copying text to the clipboard with visual feedback.",
41
- "copy_usage": "API keys, transaction IDs, or sharing links.",
42
- "guideline_principle": "Principle",
43
- "guideline_detail": "Detail",
44
- "consistency": "Consistency",
45
- "consistency_desc": "Maintain identical label casing (Sentence case) and icon placement across all buttons.",
46
- "placement_desc": "Buttons should be grouped at the bottom-right for modals or bottom-left for forms.",
47
- "placement_conflict": "Placement Conflict",
48
- "placement_conflict_desc": "Avoid placing multiple primary buttons on the same view."
49
- },
50
- "btn": {
51
- "page_transition": "Standard page transitions or footer links."
29
+ "consistency": "Consistency"
52
30
  },
53
31
  "dropzone": {
54
32
  "description": "Drag and drop files here, or click to select"