wimui 0.9.0 → 0.11.0

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 (106) hide show
  1. package/dist/components/_internal/FieldCharacterCount/field-character-count.module.cjs +1 -1
  2. package/dist/components/_internal/FieldCharacterCount/field-character-count.module.js +1 -1
  3. package/dist/components/_internal/accessibleName.cjs +2 -0
  4. package/dist/components/_internal/accessibleName.d.ts +54 -0
  5. package/dist/components/_internal/accessibleName.js +7 -0
  6. package/dist/components/_internal/useIndicator.cjs +1 -1
  7. package/dist/components/_internal/useIndicator.d.ts +16 -1
  8. package/dist/components/_internal/useIndicator.js +15 -12
  9. package/dist/components/ai/CodeBlock/code-block.module.cjs +1 -1
  10. package/dist/components/ai/CodeBlock/code-block.module.js +1 -1
  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/MarkdownRenderer/markdown-renderer.module.cjs +1 -1
  14. package/dist/components/ai/MarkdownRenderer/markdown-renderer.module.js +1 -1
  15. package/dist/components/ai/StreamingText/streaming-text.module.cjs +1 -1
  16. package/dist/components/ai/StreamingText/streaming-text.module.js +1 -1
  17. package/dist/components/ai/Terminal/terminal.module.cjs +1 -1
  18. package/dist/components/ai/Terminal/terminal.module.js +1 -1
  19. package/dist/components/data-display/Badge/badge.module.cjs +1 -1
  20. package/dist/components/data-display/Badge/badge.module.js +1 -1
  21. package/dist/components/data-display/Calendar/calendar.module.cjs +1 -1
  22. package/dist/components/data-display/Calendar/calendar.module.js +1 -1
  23. package/dist/components/data-display/Chip/chip.module.cjs +1 -1
  24. package/dist/components/data-display/Chip/chip.module.js +2 -2
  25. package/dist/components/data-display/JsonViewer/json-viewer.module.cjs +1 -1
  26. package/dist/components/data-display/JsonViewer/json-viewer.module.js +3 -3
  27. package/dist/components/data-display/Markdown/markdown.module.cjs +1 -1
  28. package/dist/components/data-display/Markdown/markdown.module.js +1 -1
  29. package/dist/components/data-display/PullToRefresh/PullToRefresh.cjs +1 -1
  30. package/dist/components/data-display/PullToRefresh/PullToRefresh.js +22 -20
  31. package/dist/components/data-display/Stats/stats.module.cjs +1 -1
  32. package/dist/components/data-display/Stats/stats.module.js +1 -1
  33. package/dist/components/data-display/Tag/tag.module.cjs +1 -1
  34. package/dist/components/data-display/Tag/tag.module.js +1 -1
  35. package/dist/components/data-display/TreeView/tree-view.module.cjs +1 -1
  36. package/dist/components/data-display/TreeView/tree-view.module.js +2 -2
  37. package/dist/components/feedback/Alert/alert.module.cjs +1 -1
  38. package/dist/components/feedback/Alert/alert.module.js +2 -2
  39. package/dist/components/feedback/ErrorBoundary/errorboundary.module.cjs +1 -1
  40. package/dist/components/feedback/ErrorBoundary/errorboundary.module.js +1 -1
  41. package/dist/components/feedback/Notification/notification.module.cjs +1 -1
  42. package/dist/components/feedback/Notification/notification.module.js +2 -2
  43. package/dist/components/feedback/Progress/Progress.cjs +1 -1
  44. package/dist/components/feedback/Progress/Progress.d.ts +15 -6
  45. package/dist/components/feedback/Progress/Progress.js +29 -28
  46. package/dist/components/feedback/ProgressRing/ProgressRing.cjs +2 -0
  47. package/dist/components/feedback/ProgressRing/ProgressRing.d.ts +57 -0
  48. package/dist/components/feedback/ProgressRing/ProgressRing.js +51 -0
  49. package/dist/components/feedback/ProgressRing/progress-ring.module.cjs +2 -0
  50. package/dist/components/feedback/ProgressRing/progress-ring.module.js +25 -0
  51. package/dist/components/feedback/Result/Result.cjs +1 -1
  52. package/dist/components/feedback/Result/Result.d.ts +11 -1
  53. package/dist/components/feedback/Result/Result.js +3 -3
  54. package/dist/components/feedback/Result/result.module.cjs +1 -1
  55. package/dist/components/feedback/Result/result.module.js +8 -3
  56. package/dist/components/form/Cascader/cascader.module.cjs +1 -1
  57. package/dist/components/form/Cascader/cascader.module.js +6 -6
  58. package/dist/components/form/SignaturePad/signature-pad.module.cjs +1 -1
  59. package/dist/components/form/SignaturePad/signature-pad.module.js +6 -6
  60. package/dist/components/form/SplitButton/SplitButton.cjs +2 -0
  61. package/dist/components/form/SplitButton/SplitButton.d.ts +78 -0
  62. package/dist/components/form/SplitButton/SplitButton.js +48 -0
  63. package/dist/components/form/SplitButton/split-button.module.cjs +2 -0
  64. package/dist/components/form/SplitButton/split-button.module.js +11 -0
  65. package/dist/components/form/Transfer/transfer.module.cjs +1 -1
  66. package/dist/components/form/Transfer/transfer.module.js +6 -6
  67. package/dist/components/form/TreeSelect/tree-select.module.cjs +1 -1
  68. package/dist/components/form/TreeSelect/tree-select.module.js +6 -6
  69. package/dist/components/typography/Code/code.module.cjs +1 -1
  70. package/dist/components/typography/Code/code.module.js +1 -1
  71. package/dist/components/typography/Text/Text.cjs +1 -1
  72. package/dist/components/typography/Text/Text.d.ts +24 -0
  73. package/dist/components/typography/Text/Text.js +13 -12
  74. package/dist/components/typography/Text/text.module.cjs +1 -1
  75. package/dist/components/typography/Text/text.module.js +11 -10
  76. package/dist/feedback.cjs +1 -1
  77. package/dist/feedback.d.ts +1 -0
  78. package/dist/feedback.js +2 -1
  79. package/dist/form.cjs +1 -1
  80. package/dist/form.d.ts +1 -0
  81. package/dist/form.js +2 -1
  82. package/dist/i18n/generated/keys.d.ts +1 -1
  83. package/dist/icon/grid.cjs +2 -0
  84. package/dist/icon/grid.js +72 -0
  85. package/dist/icon/index.cjs +1 -1
  86. package/dist/icon/index.d.ts +5 -1
  87. package/dist/icon/index.js +98 -94
  88. package/dist/icon/menu.cjs +2 -0
  89. package/dist/icon/menu.js +36 -0
  90. package/dist/icons.cjs +1 -1
  91. package/dist/icons.js +51 -49
  92. package/dist/index.cjs +1 -1
  93. package/dist/index.js +218 -214
  94. package/dist/llms-full.txt +76 -54
  95. package/dist/llms.txt +50 -41
  96. package/dist/locales/en/components.json +3 -1
  97. package/dist/locales/ja/components.json +3 -1
  98. package/dist/locales/pt/components.json +3 -1
  99. package/dist/overlay.cjs +1 -1
  100. package/dist/overlay.js +4 -4
  101. package/dist/reset.css +1 -1
  102. package/dist/styles.css +2 -2
  103. package/dist/types/generated-tokens.d.ts +1 -1
  104. package/dist/wimui.umd.css +1 -1
  105. package/dist/wimui.umd.js +5 -5
  106. package/package.json +32 -5
package/dist/llms.txt CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## What this is
6
6
 
7
- **wimui** v0.9.0 — a React 19 component library: 216 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.11.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).
8
8
 
9
9
  ## Install & required setup
10
10
 
@@ -75,9 +75,13 @@ Single components are judged by state/a11y/token compliance. **Composed screens*
75
75
  5. Keep one radius stance per screen (`radius.component` / `radius.container` / `radius.overlay`); don't mix 0 and lg arbitrarily.
76
76
  6. Limit accent color: primary surfaces (solid buttons, emphasis backgrounds) 1–2 per view.
77
77
  7. Give demo content real substance (product-context copy, internally consistent numbers/dates/names — active ≤ total, dates not evenly spaced).
78
- 8. Add intentional "wobble": mix in 1–2 incomplete rows (a truncated long name, a missing optional field, an extreme value, an error/unread state) and show non-happy-path states (hover/focus/disabled/error/empty/loading).
79
- 9. Keep the chrome quiet. Breadcrumb, page title, summary line, toolbar and filter bar frame the content; they must not compete with the protagonist. Don't promote a one-line summary to an `Alert`/`Banner`, don't wrap the filter bar in a `Card` (its border doubles up with the data region's), keep primary surfaces out of the chrome, and don't stack a KPI tile row above a table screen. Corollary of 1 and 6, but it is the rule most often broken on admin/list screens the test is whether the eye lands on the data first.
80
- 10. Check the screen at 390px and 768px before calling it done. The page itself must never scroll sideways (`document.scrollWidth > document.documentElement.clientWidth` is a bug — the usual cause is a group of controls that cannot wrap, e.g. several buttons packed into one `Toolbar.Group`; split them into separate groups). Data tables need their narrow mode turned on (`<DataGrid mobileCard>`) rather than an inner scrollbar: without it columns collapse and a short string like a `Code` lot number breaks one character per line. The switch to cards happens at the `md` container width, so tablets get cards too.
78
+ 8. Keep one elevation stance per screen: don't mix surfaces raised by shadow with surfaces cut by borders. `Card` and `Stats` default to `elevated`, so pass `variant="outline"` when the screen is border-led. If the outer container already casts a shadow, its contents need only a border.
79
+ 9. Never wrap a component that already draws its own frame. `<Card><Table card /></Card>` doubles the border and nests radii (12px inside 4px). `Table` takes a `card` prop and `Stats` is already a Cardplace them directly.
80
+ 10. Always pass `intent` on `Badge` / `Tag` / `Chip`. Their default is `primary` (the accent), so an ordinary value like `pending` or `member` gets painted as loudly as an exception and the colour stops carrying information. Use `intent="neutral"` for ordinary values.
81
+ 11. Pick colour by good/bad, not by direction. `Stats.Trend` ties the arrow and the colour together, so `up` is always the success colour — using it for a metric where up is bad (failures, error rate) renders the bad news as good. Use a colourless form such as `Stats.Description` instead. Don't approximate a meaning the API cannot express.
82
+ 12. Keep the chrome quiet. Breadcrumb, page title, summary line, toolbar and filter bar frame the content; they must not compete with the protagonist. Don't promote a one-line summary to an `Alert`/`Banner`, don't wrap the filter bar in a `Card` (its border doubles up with the data region's), keep primary surfaces out of the chrome, and don't stack a KPI tile row above a table screen. Corollary of protagonist and accent limits, but it is the rule most often broken on admin/list screens — the test is whether the eye lands on the data first.
83
+ 13. Add intentional "wobble": mix in 1–2 incomplete rows (a truncated long name, a missing optional field, an extreme value, an error/unread state) and show non-happy-path states (hover/focus/disabled/error/empty/loading).
84
+ 14. Check the screen at 390px and 768px before calling it done. The page itself must never scroll sideways (`document.scrollWidth > document.documentElement.clientWidth` is a bug — the usual cause is a group of controls that cannot wrap, e.g. several buttons packed into one `Toolbar.Group`; split them into separate groups). Data tables need their narrow mode turned on (`<DataGrid mobileCard>`) rather than an inner scrollbar: without it columns collapse and a short string like a `Code` lot number breaks one character per line. The switch to cards happens at the `md` container width, so tablets get cards too.
81
85
 
82
86
  ## Recipes — copy-paste starting points
83
87
 
@@ -187,12 +191,12 @@ export function BillingOverview() {
187
191
 
188
192
  - **AppShell** — Basic application shell layout
189
193
  - **AspectRatio** — Fixed ratio container
190
- - **BentoGrid** — Modern card grid
194
+ - **BentoGrid** — Modern card grid (aka Waffle Menu, Bento Menu, Grid Menu, Candy Bar Menu, Chocolate Bar Menu, ベントーメニュー, ワッフルメニュー)
191
195
  - **Box** — Polymorphic box
192
196
  - **Center** — Radial centering
193
197
  - **Container** — Layout wrapper
194
198
  - **Dashboard** — Arranges widgets in a configurable grid with an edit mode for adding, removing, and resizing them.
195
- - **Divider** — Content separator
199
+ - **Divider** — Content separator (aka Separator, Horizontal Rule)
196
200
  - **Flex** — Flexible layout
197
201
  - **Footer** — Lower navigation
198
202
  - **Grid** — Flexbox or CSS Grid system
@@ -202,23 +206,23 @@ export function BillingOverview() {
202
206
  - **Masonry** — Waterfall grid
203
207
  - **Navbar** — Primary navigation
204
208
  - **ScrollArea** — A custom scrollbar component that provides high-performance, cross-browser consistent themes while maintaining a native-like feel.
205
- - **Sidebar** — A collapsible navigation or informational panel on the side of the screen
209
+ - **Sidebar** — A collapsible navigation or informational panel on the side of the screen (aka Source List, Inspector)
206
210
  - **SimpleGrid** — Responsive fixed grid
207
211
  - **Splitter** — Split and resize panels
208
212
  - **Stack** — Vertical/Horizontal alignment
209
- - **Toolbar** — Action strip for IconButton, ToggleGroup, and related controls with toolbar keyboard navigation.
213
+ - **Toolbar** — Action strip for IconButton, ToggleGroup, and related controls with toolbar keyboard navigation. (aka Action Bar)
210
214
  - **Transition** — Utilities for managing smooth enter and leave animations with CSS classes
211
- - **VisuallyHidden** — Hide content visually while keeping it accessible to screen readers
215
+ - **VisuallyHidden** — Hide content visually while keeping it accessible to screen readers (aka Screen Reader Only, SR Only)
212
216
  - **Watermark** — Translucent text or images overlaid on content to indicate ownership or status
213
217
 
214
218
  ### form — `import { … } from "wimui/form"`
215
219
 
216
220
  - **Button** — Action triggers
217
221
  - **ButtonGroup** — Group of buttons
218
- - **Cascader** — Hierarchical selection
222
+ - **Cascader** — Hierarchical selection (aka Column View, Miller Columns)
219
223
  - **Checkbox** — Multiple choice
220
224
  - **CheckboxGroup** — Shared state checkboxes
221
- - **ColorInput** — Input with color preview
225
+ - **ColorInput** — Input with color preview (aka Color Well, Color Field)
222
226
  - **ColorPicker** — Color selection picker
223
227
  - **Combobox** — Select with search
224
228
  - **CopyButton** — Copy to clipboard
@@ -234,7 +238,7 @@ export function BillingOverview() {
234
238
  - **FloatButton** — Floating action buttons
235
239
  - **IconButton** — Icon-only button
236
240
  - **ImageCropper** — Front-end image crop and rotate tool
237
- - **InlineEdit** — A component that allows users to switch between a view-only mode and an editable mode in-place.
241
+ - **InlineEdit** — A component that allows users to switch between a view-only mode and an editable mode in-place. (aka Editable Text)
238
242
  - **Input** — Single-line input fields for text, numbers, or emails
239
243
  - **InputBase** — Standardizes the visual container, icon slots (Prefix/Suffix), and clear button behavior for text-based inputs.
240
244
  - **InputGroup** — Inputs with icons/labels
@@ -242,26 +246,27 @@ export function BillingOverview() {
242
246
  - **LinkButton** — Anchor styled as button
243
247
  - **Mentions** — @ / # suggestions
244
248
  - **MultiSelect** — Multiple selection
245
- - **NumberInput** — Input with step adjustments
249
+ - **NumberInput** — Input with step adjustments (aka Spin Button, Numeric Stepper)
246
250
  - **OtpInput** — One-time password fields
247
251
  - **PasswordInput** — Password with toggle
248
- - **PasswordStrength** — Visual meter to indicate password security level
252
+ - **PasswordStrength** — Visual meter to indicate password security level (aka Strength Meter)
249
253
  - **PhoneInput** — International phone number input
250
254
  - **QueryBuilder** — Visual builder for constructing complex search queries.
251
255
  - **Radio** — Single choice
252
256
  - **RadioGroup** — Shared state radio buttons
253
257
  - **RangeSlider** — Range selection
254
- - **Rating** — Star rating
258
+ - **Rating** — Star rating (aka Star Rating, Rating Indicator)
255
259
  - **RichTextEditor** — WYSIWYG rich text editor
256
- - **SearchInput** — Search with clear button
257
- - **SegmentedControl** — Button-style controls for switching between a small set of mutually exclusive options
258
- - **Select** — A dropdown menu for selecting one option from a predefined list
260
+ - **SearchInput** — Search with clear button (aka Search Field, Search Bar)
261
+ - **SegmentedControl** — Button-style controls for switching between a small set of mutually exclusive options (aka Segmented Buttons, Segmented Picker)
262
+ - **Select** — A dropdown menu for selecting one option from a predefined list (aka Pop-Up Button, Select Menu)
259
263
  - **SignaturePad** — Handwritten signature input
260
264
  - **Slider** — An input to capture a numeric value from a specified range by dragging a knob
261
265
  - **SmartSearchInput** — Smart search input enabling both traditional search and AI prompting.
262
- - **Switch** — A binary switch for instantly toggling settings between on and off states
266
+ - **SplitButton** — SplitButton description.
267
+ - **Switch** — A binary switch for instantly toggling settings between on and off states (aka Toggle, Toggle Switch)
263
268
  - **SwitchGroup** — Shared state switches
264
- - **TagInput** — Field for entering free-form text as tags
269
+ - **TagInput** — Field for entering free-form text as tags (aka Token Field, Chips Input)
265
270
  - **Textarea** — Multi-line input fields for longer text entries like descriptions or comments
266
271
  - **ThemeToggle** — Light / dark / system theme switcher
267
272
  - **TimePicker** — Time selection
@@ -280,47 +285,50 @@ export function BillingOverview() {
280
285
  - **LoadingOverlay** — Overlay with loading indicator
281
286
  - **Notification** — Rich notification card
282
287
  - **Progress** — Progress bar
288
+ - ⚠️ 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`.
289
+ - **ProgressRing** — ProgressRing description.
283
290
  - **Result** — Task status indicator
284
291
  - **ScrollProgress** — Reading progress indicator
285
- - **Skeleton** — Placeholder for content loading states.
292
+ - **Skeleton** — Placeholder for content loading states. (aka Shimmer)
286
293
  - **Snackbar** — Bottom notifications
287
- - **Spinner** — A rotating icon indicating background activity or data fetching
294
+ - **Spinner** — A rotating icon indicating background activity or data fetching (aka Activity Indicator)
288
295
  - **Toast** — Non-intrusive floating messages that provide feedback on system operations
289
296
  - **Tour** — Sequential guided walkthroughs to onboard users or highlight features
290
297
 
291
298
  ### navigation — `import { … } from "wimui/navigation"`
292
299
 
293
- - **Affix** — Sticky elements
294
- - **Anchor** — Smooth scroll links
295
- - **BackTop** — Back to top button
296
- - **Breadcrumb** — Location trace
297
- - **CommandPalette** — Cmd+K search overlay
298
- - **HamburgerMenu** — Toggleable menu
300
+ - **Affix** — Sticky elements (aka Sticky)
301
+ - **Anchor** — Smooth scroll links (aka Scrollspy)
302
+ - **BackTop** — Back to top button (aka Back to Top)
303
+ - **Breadcrumb** — Location trace (aka Path Bar, Path Control)
304
+ - **CommandPalette** — Cmd+K search overlay (aka Command Bar, Quick Open)
305
+ - **HamburgerMenu** — Toggleable menu (aka Sandwich Menu, Navigation Drawer Trigger, Nav Toggle, Cheeseburger Menu, Veggie Burger Menu, Pancake Menu, Bacon Menu, Hot Dog Menu, ハンバーガーメニュー, サンドイッチメニュー)
299
306
  - **KeyboardShortcuts** — Display a structured list of keyboard shortcuts
300
307
  - **Link** — Hyperlinks
301
308
  - **Menubar** — Desktop-style application menu bar with floating File / Edit / View submenus.
302
309
  - **Pagination** — Multi-page navigation
303
310
  - **SpeedDial** — Floating action button that expands sub-actions on hover or click.
304
311
  - **Stepper** — Visual sequence steps
312
+ - ⚠️ Not the same as elsewhere: In Apple HIG and macOS, a "Stepper" is the control that increments a number — that is `NumberInput` here. WIM's `Stepper` shows progress through a sequence of steps, which is what Material calls a Stepper.
305
313
  - **TabBar** — Mobile bottom navigation
306
314
  - **TabNavigation** — Tab-based navigation
307
315
  - **Tabs** — A container to organize related content into switchable view panels
308
316
 
309
317
  ### data-display — `import { … } from "wimui/data-display"`
310
318
 
311
- - **Accordion** — Collapsible panels
319
+ - **Accordion** — Collapsible panels (aka Disclosure, Disclosure Group, Expander)
312
320
  - **Avatar** — Profile initials/pics
313
- - **AvatarGroup** — Stacked avatars
321
+ - **AvatarGroup** — Stacked avatars (aka Face Pile)
314
322
  - **Badge** — Indicators or counts
315
323
  - **Calendar** — Calendar view
316
324
  - **CalendarHeatmap** — GitHub-style activity graph for visualizing continuity
317
325
  - **Card** — Information containers
318
326
  - **Carousel** — Content slideshow
319
- - **Chip** — Filter/Selection tokens
327
+ - **Chip** — Filter/Selection tokens (aka Pill, Token)
320
328
  - **Countdown** — Display the remaining time until a target moment as a live ticking timer, for sale deadlines, OTP resend waits, and maintenance notices.
321
329
  - **DataGrid** — Advanced data table and manipulation
322
330
  - **DescriptionList** — Key-value pairs
323
- - **EmptyState** — Missing data placeholder
331
+ - **EmptyState** — Missing data placeholder (aka Blank Slate, Zero State)
324
332
  - **FAQSection** — Frequently Asked Questions section
325
333
  - **InfiniteScroll** — Infinite scroll control
326
334
  - **JsonDiffViewer** — Compares two JSON values as a formatted side-by-side or unified diff, built on top of CodeDiffViewer.
@@ -329,7 +337,7 @@ export function BillingOverview() {
329
337
  - **Leaderboard** — Display a ranked list of entries with scores and medal highlights for the top three positions.
330
338
  - **List** — Structurally organized items in bullet points or numbered formats
331
339
  - **Markdown** — A component for safely rendering text in Markdown format.
332
- - **Marquee** — Scrolling text animation
340
+ - **Marquee** — Scrolling text animation (aka Ticker)
333
341
  - **NodeGraph** — Interactive node-based flowchart and pipeline editor
334
342
  - **PullToRefresh** — Pull-to-refresh utility for enhancing mobile user experience.
335
343
  - **QRCode** — QR generator
@@ -343,23 +351,24 @@ export function BillingOverview() {
343
351
  - **Table** — Rows and columns for displaying structured data efficiently
344
352
  - **Tag** — Compact visual descriptors used for labeling or categorizing content
345
353
  - **Timeline** — A vertical list mapping events or history in chronological order
346
- - **TreeView** — Hierarchical data
354
+ - **TreeView** — Hierarchical data (aka Outline View)
347
355
  - **VirtualList** — Efficiently renders large lists by virtualizing off-screen items
348
356
 
349
357
  ### overlay — `import { … } from "wimui/overlay"`
350
358
 
351
- - **BottomSheet** — Mobile bottom overlay
359
+ - **BottomSheet** — Mobile bottom overlay (aka Sheet, Action Sheet)
352
360
  - **ContextMenu** — Right-click menus
353
- - **Dialog** — Focused task windows
354
- - **Drawer** — Slide-out detail panels
355
- - **Dropdown** — Overlay selection menu
361
+ - **Dialog** — Focused task windows (aka Modal, Modal Dialog)
362
+ - **Drawer** — Slide-out detail panels (aka Navigation Drawer)
363
+ - **Dropdown** — Overlay selection menu (aka Overflow Menu, Kebab Menu, Meatball Menu, Vertical Ellipsis, Horizontal Ellipsis, Three Dots Menu, More Menu, App Switcher, オーバーフローメニュー, ケバブメニュー, ミートボールメニュー)
356
364
  - **FocusTrap** — Focus management
357
365
  - **HoverCard** — Rich content on hover
358
366
  - **Menu** — General menus
367
+ - ⚠️ Not the same as elsewhere: In macOS, a "Menu" is the pull-down from a menu bar. WIM's `Menu` is the list of choices itself; for one that opens from a trigger, use `Dropdown`.
359
368
  - **Popconfirm** — Confirmation overlay
360
369
  - **Popover** — Contextual overlay
361
370
  - **Portal** — Out-of-hierarchy render
362
- - **Tooltip** — Information on hover
371
+ - **Tooltip** — Information on hover (aka Help Tag)
363
372
 
364
373
  ### typography — `import { … } from "wimui/typography"`
365
374
 
@@ -381,7 +390,7 @@ export function BillingOverview() {
381
390
  - **Icon** — Visual symbols
382
391
  - **Image** — Image content
383
392
  - **ImageCompare** — ImageCompare overlays two images and reveals them with a draggable divider — a before/after slider for comparing edits, restorations, or AI-generated results against their source.
384
- - **Lightbox** — A high-quality overlay component for displaying images and media with gallery and zoom functionality.
393
+ - **Lightbox** — A high-quality overlay component for displaying images and media with gallery and zoom functionality. (aka Image Viewer)
385
394
  - **Video** — A component for embedding and controlling local or remote video content
386
395
 
387
396
  ### charts — `import { … } from "wimui/charts"`
@@ -416,7 +425,7 @@ export function BillingOverview() {
416
425
  - **Terminal** — Renders terminal-style output with ANSI color support, prompt prefixes, and copy/clear controls.
417
426
  - **ThoughtProcess** — Visualizes AI reasoning steps and execution states in a timeline format.
418
427
  - **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.
419
- - **UsageMeter** — UsageMeter (also exported as TokenCounter) visualizes token consumption against a budget such as a model's context window — a labeled bar plus a numeric readout that shifts to warning and danger colors near the limit.
428
+ - **UsageMeter** — UsageMeter (also exported as TokenCounter) visualizes token consumption against a budget such as a model's context window — a labeled bar plus a numeric readout that shifts to warning and danger colors near the limit. (aka Level Indicator, Capacity Indicator, Meter)
420
429
  - **VoiceVisualizer** — Animated voice-level indicator (bars / waveform)
421
430
 
422
431
  ---
@@ -117,7 +117,9 @@
117
117
  "countdown_desc": "Display the remaining time until a target moment as a live ticking timer, for sale deadlines, OTP resend waits, and maintenance notices.",
118
118
  "spoiler_desc": "Collapse long text such as reviews and comments to a fixed number of lines, with an accessible \"show more\" toggle that appears only when the text overflows.",
119
119
  "toolbar_desc": "Action strip for IconButton, ToggleGroup, and related controls with toolbar keyboard navigation.",
120
- "menubar_desc": "Desktop-style application menu bar with floating File / Edit / View submenus."
120
+ "menubar_desc": "Desktop-style application menu bar with floating File / Edit / View submenus.",
121
+ "progressRing_desc": "ProgressRing description.",
122
+ "splitButton_desc": "SplitButton description."
121
123
  },
122
124
  "cat": {
123
125
  "ai": "AI"
@@ -189,7 +189,9 @@
189
189
  "countdown_desc": "セール終了・OTP再送待ち・メンテナンス告知などの目標時刻までの残り時間を、毎秒更新されるタイマーとして表示します。",
190
190
  "spoiler_desc": "レビューやコメントなどの長文を指定行数に折りたたみ、テキストがあふれる場合のみアクセシブルな「もっと見る」トグルを表示します。",
191
191
  "toolbar_desc": "IconButton や ToggleGroup などをまとめるアクション帯。ツールバーのキーボード操作に対応します。",
192
- "menubar_desc": "File / Edit / View のようなデスクトップ型メニューバー。フローティングのサブメニューを開きます。"
192
+ "menubar_desc": "File / Edit / View のようなデスクトップ型メニューバー。フローティングのサブメニューを開きます。",
193
+ "progressRing_desc": "ProgressRing description.",
194
+ "splitButton_desc": "SplitButton description."
193
195
  },
194
196
  "effects": {
195
197
  "common_vars": "共通変数"
@@ -189,7 +189,9 @@
189
189
  "countdown_desc": "Exibe o tempo restante até um momento alvo como um cronômetro atualizado a cada segundo, para prazos de promoções, espera de reenvio de OTP e avisos de manutenção.",
190
190
  "spoiler_desc": "Recolhe textos longos, como avaliações e comentários, a um número fixo de linhas, com um botão \"mostrar mais\" acessível que aparece apenas quando o texto transborda.",
191
191
  "toolbar_desc": "Faixa de ações para IconButton, ToggleGroup e controles relacionados, com navegação por teclado de toolbar.",
192
- "menubar_desc": "Barra de menus no estilo desktop, com submenus flutuantes de Arquivo / Editar / Exibir."
192
+ "menubar_desc": "Barra de menus no estilo desktop, com submenus flutuantes de Arquivo / Editar / Exibir.",
193
+ "progressRing_desc": "ProgressRing description.",
194
+ "splitButton_desc": "SplitButton description."
193
195
  },
194
196
  "effects": {
195
197
  "common_vars": "Variáveis Comuns"
package/dist/overlay.cjs CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./components/overlay/Portal/Portal.cjs"),t=require("./components/overlay/FocusTrap/FocusTrap.cjs"),n=require("./components/overlay/Drawer/Drawer.cjs"),r=require("./components/overlay/Dialog/Dialog.cjs"),i=require("./components/overlay/Tooltip/Tooltip.cjs"),a=require("./components/overlay/BottomSheet/BottomSheet.cjs"),o=require("./components/overlay/ContextMenu/ContextMenu.cjs"),s=require("./components/overlay/Dropdown/Dropdown.cjs"),c=require("./components/overlay/HoverCard/HoverCard.cjs"),l=require("./components/overlay/Menu/Menu.cjs"),u=require("./components/overlay/Popover/Popover.cjs"),d=require("./components/overlay/Popconfirm/Popconfirm.cjs");exports.BottomSheet=a.BottomSheet,exports.BottomSheetBody=a.BottomSheetBody,exports.BottomSheetClose=a.BottomSheetClose,exports.BottomSheetContent=a.BottomSheetContent,exports.BottomSheetDescription=a.BottomSheetDescription,exports.BottomSheetFooter=a.BottomSheetFooter,exports.BottomSheetHeader=a.BottomSheetHeader,exports.BottomSheetTitle=a.BottomSheetTitle,exports.BottomSheetTrigger=a.BottomSheetTrigger,exports.ContextMenu=o.ContextMenu,exports.ContextMenuDivider=o.ContextMenuDivider,exports.ContextMenuGroup=o.ContextMenuGroup,exports.ContextMenuItem=o.ContextMenuItem,exports.Dialog=r.Dialog,exports.DialogClose=r.DialogClose,exports.DialogContent=r.DialogContent,exports.DialogDescription=r.DialogDescription,exports.DialogFooter=r.DialogFooter,exports.DialogHeader=r.DialogHeader,exports.DialogTitle=r.DialogTitle,exports.DialogTrigger=r.DialogTrigger,exports.Drawer=n.Drawer,exports.DrawerClose=n.DrawerClose,exports.DrawerContent=n.DrawerContent,exports.DrawerDescription=n.DrawerDescription,exports.DrawerFooter=n.DrawerFooter,exports.DrawerHeader=n.DrawerHeader,exports.DrawerTitle=n.DrawerTitle,exports.DrawerTrigger=n.DrawerTrigger,exports.Dropdown=s.Dropdown,exports.DropdownItem=s.DropdownItem,exports.DropdownMenu=s.DropdownMenu,exports.DropdownTrigger=s.DropdownTrigger,exports.FocusTrap=t.FocusTrap,exports.HoverCard=c.HoverCard,exports.HoverCardContent=c.HoverCardContent,exports.HoverCardTrigger=c.HoverCardTrigger,exports.Menu=l.Menu,exports.MenuDivider=l.MenuDivider,exports.MenuItem=l.MenuItem,exports.MenuItemGroup=l.MenuItemGroup,exports.Popconfirm=d.Popconfirm,exports.Popover=u.Popover,exports.PopoverClose=u.PopoverClose,exports.PopoverContent=u.PopoverContent,exports.PopoverTrigger=u.PopoverTrigger,exports.Portal=e.Portal,exports.SubMenu=l.SubMenu,exports.Tooltip=i.Tooltip,exports.TooltipContent=i.TooltipContent,exports.TooltipTrigger=i.TooltipTrigger,exports.useDialog=r.useDialog,exports.useDrawer=n.useDrawer;
2
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./components/overlay/Portal/Portal.cjs"),t=require("./components/overlay/FocusTrap/FocusTrap.cjs"),n=require("./components/overlay/Drawer/Drawer.cjs"),r=require("./components/overlay/Dialog/Dialog.cjs"),i=require("./components/overlay/Tooltip/Tooltip.cjs"),a=require("./components/overlay/Dropdown/Dropdown.cjs"),o=require("./components/overlay/BottomSheet/BottomSheet.cjs"),s=require("./components/overlay/ContextMenu/ContextMenu.cjs"),c=require("./components/overlay/HoverCard/HoverCard.cjs"),l=require("./components/overlay/Menu/Menu.cjs"),u=require("./components/overlay/Popover/Popover.cjs"),d=require("./components/overlay/Popconfirm/Popconfirm.cjs");exports.BottomSheet=o.BottomSheet,exports.BottomSheetBody=o.BottomSheetBody,exports.BottomSheetClose=o.BottomSheetClose,exports.BottomSheetContent=o.BottomSheetContent,exports.BottomSheetDescription=o.BottomSheetDescription,exports.BottomSheetFooter=o.BottomSheetFooter,exports.BottomSheetHeader=o.BottomSheetHeader,exports.BottomSheetTitle=o.BottomSheetTitle,exports.BottomSheetTrigger=o.BottomSheetTrigger,exports.ContextMenu=s.ContextMenu,exports.ContextMenuDivider=s.ContextMenuDivider,exports.ContextMenuGroup=s.ContextMenuGroup,exports.ContextMenuItem=s.ContextMenuItem,exports.Dialog=r.Dialog,exports.DialogClose=r.DialogClose,exports.DialogContent=r.DialogContent,exports.DialogDescription=r.DialogDescription,exports.DialogFooter=r.DialogFooter,exports.DialogHeader=r.DialogHeader,exports.DialogTitle=r.DialogTitle,exports.DialogTrigger=r.DialogTrigger,exports.Drawer=n.Drawer,exports.DrawerClose=n.DrawerClose,exports.DrawerContent=n.DrawerContent,exports.DrawerDescription=n.DrawerDescription,exports.DrawerFooter=n.DrawerFooter,exports.DrawerHeader=n.DrawerHeader,exports.DrawerTitle=n.DrawerTitle,exports.DrawerTrigger=n.DrawerTrigger,exports.Dropdown=a.Dropdown,exports.DropdownItem=a.DropdownItem,exports.DropdownMenu=a.DropdownMenu,exports.DropdownTrigger=a.DropdownTrigger,exports.FocusTrap=t.FocusTrap,exports.HoverCard=c.HoverCard,exports.HoverCardContent=c.HoverCardContent,exports.HoverCardTrigger=c.HoverCardTrigger,exports.Menu=l.Menu,exports.MenuDivider=l.MenuDivider,exports.MenuItem=l.MenuItem,exports.MenuItemGroup=l.MenuItemGroup,exports.Popconfirm=d.Popconfirm,exports.Popover=u.Popover,exports.PopoverClose=u.PopoverClose,exports.PopoverContent=u.PopoverContent,exports.PopoverTrigger=u.PopoverTrigger,exports.Portal=e.Portal,exports.SubMenu=l.SubMenu,exports.Tooltip=i.Tooltip,exports.TooltipContent=i.TooltipContent,exports.TooltipTrigger=i.TooltipTrigger,exports.useDialog=r.useDialog,exports.useDrawer=n.useDrawer;
package/dist/overlay.js CHANGED
@@ -4,11 +4,11 @@ import { FocusTrap as t } from "./components/overlay/FocusTrap/FocusTrap.js";
4
4
  import { Drawer as n, DrawerClose as r, DrawerContent as i, DrawerDescription as a, DrawerFooter as o, DrawerHeader as s, DrawerTitle as c, DrawerTrigger as l, useDrawer as u } from "./components/overlay/Drawer/Drawer.js";
5
5
  import { Dialog as d, DialogClose as f, DialogContent as p, DialogDescription as m, DialogFooter as h, DialogHeader as g, DialogTitle as _, DialogTrigger as v, useDialog as y } from "./components/overlay/Dialog/Dialog.js";
6
6
  import { Tooltip as b, TooltipContent as x, TooltipTrigger as S } from "./components/overlay/Tooltip/Tooltip.js";
7
- import { BottomSheet as C, BottomSheetBody as w, BottomSheetClose as T, BottomSheetContent as E, BottomSheetDescription as D, BottomSheetFooter as O, BottomSheetHeader as k, BottomSheetTitle as A, BottomSheetTrigger as j } from "./components/overlay/BottomSheet/BottomSheet.js";
8
- import { ContextMenu as M, ContextMenuDivider as N, ContextMenuGroup as P, ContextMenuItem as F } from "./components/overlay/ContextMenu/ContextMenu.js";
9
- import { Dropdown as I, DropdownItem as L, DropdownMenu as R, DropdownTrigger as z } from "./components/overlay/Dropdown/Dropdown.js";
7
+ import { Dropdown as C, DropdownItem as w, DropdownMenu as T, DropdownTrigger as E } from "./components/overlay/Dropdown/Dropdown.js";
8
+ import { BottomSheet as D, BottomSheetBody as O, BottomSheetClose as k, BottomSheetContent as A, BottomSheetDescription as j, BottomSheetFooter as M, BottomSheetHeader as N, BottomSheetTitle as P, BottomSheetTrigger as F } from "./components/overlay/BottomSheet/BottomSheet.js";
9
+ import { ContextMenu as I, ContextMenuDivider as L, ContextMenuGroup as R, ContextMenuItem as z } from "./components/overlay/ContextMenu/ContextMenu.js";
10
10
  import { HoverCard as B, HoverCardContent as V, HoverCardTrigger as H } from "./components/overlay/HoverCard/HoverCard.js";
11
11
  import { Menu as U, MenuDivider as W, MenuItem as G, MenuItemGroup as K, SubMenu as q } from "./components/overlay/Menu/Menu.js";
12
12
  import { Popover as J, PopoverClose as Y, PopoverContent as X, PopoverTrigger as Z } from "./components/overlay/Popover/Popover.js";
13
13
  import { Popconfirm as Q } from "./components/overlay/Popconfirm/Popconfirm.js";
14
- export { C as BottomSheet, w as BottomSheetBody, T as BottomSheetClose, E as BottomSheetContent, D as BottomSheetDescription, O as BottomSheetFooter, k as BottomSheetHeader, A as BottomSheetTitle, j as BottomSheetTrigger, M as ContextMenu, N as ContextMenuDivider, P as ContextMenuGroup, F as ContextMenuItem, d as Dialog, f as DialogClose, p as DialogContent, m as DialogDescription, h as DialogFooter, g as DialogHeader, _ as DialogTitle, v as DialogTrigger, n as Drawer, r as DrawerClose, i as DrawerContent, a as DrawerDescription, o as DrawerFooter, s as DrawerHeader, c as DrawerTitle, l as DrawerTrigger, I as Dropdown, L as DropdownItem, R as DropdownMenu, z as DropdownTrigger, t as FocusTrap, B as HoverCard, V as HoverCardContent, H as HoverCardTrigger, U as Menu, W as MenuDivider, G as MenuItem, K as MenuItemGroup, Q as Popconfirm, J as Popover, Y as PopoverClose, X as PopoverContent, Z as PopoverTrigger, e as Portal, q as SubMenu, b as Tooltip, x as TooltipContent, S as TooltipTrigger, y as useDialog, u as useDrawer };
14
+ export { D as BottomSheet, O as BottomSheetBody, k as BottomSheetClose, A as BottomSheetContent, j as BottomSheetDescription, M as BottomSheetFooter, N as BottomSheetHeader, P as BottomSheetTitle, F as BottomSheetTrigger, I as ContextMenu, L as ContextMenuDivider, R as ContextMenuGroup, z as ContextMenuItem, d as Dialog, f as DialogClose, p as DialogContent, m as DialogDescription, h as DialogFooter, g as DialogHeader, _ as DialogTitle, v as DialogTrigger, n as Drawer, r as DrawerClose, i as DrawerContent, a as DrawerDescription, o as DrawerFooter, s as DrawerHeader, c as DrawerTitle, l as DrawerTrigger, C as Dropdown, w as DropdownItem, T as DropdownMenu, E as DropdownTrigger, t as FocusTrap, B as HoverCard, V as HoverCardContent, H as HoverCardTrigger, U as Menu, W as MenuDivider, G as MenuItem, K as MenuItemGroup, Q as Popconfirm, J as Popover, Y as PopoverClose, X as PopoverContent, Z as PopoverTrigger, e as Portal, q as SubMenu, b as Tooltip, x as TooltipContent, S as TooltipTrigger, y as useDialog, u as useDrawer };
package/dist/reset.css CHANGED
@@ -1 +1 @@
1
- @layer reset, base, component, utilities;@layer reset{@media(prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior:auto !important;transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important}}*,*::before,*::after{box-sizing:border-box}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{padding:0;margin:0}button{padding:0;cursor:pointer;background-color:rgba(0,0,0,0);border:none}ol,ul{padding:0;margin:0;list-style:none}a{color:inherit;text-decoration:none}table{border-spacing:0;border-collapse:collapse}blockquote{margin:0}}@layer base{html{text-size-adjust:100%;line-height:1.15;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;scrollbar-gutter:auto}@media(width >= 769px){body{scrollbar-gutter:stable}}body{color:var(--wim-color-text-primary);overflow-wrap:break-word;background-color:var(--wim-color-surface-app);text-rendering:optimizelegibility;-webkit-tap-highlight-color:rgba(0,0,0,0)}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;line-height:inherit;touch-action:manipulation}textarea{resize:vertical}rt{font-feature-settings:"palt"}dialog,[popover]{overscroll-behavior-block:contain}:focus-visible{outline:none;border-radius:inherit;box-shadow:var(--wim-shadow-focus)}@media(prefers-reduced-motion: reduce){*,::before,::after{scroll-behavior:auto !important;transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important}}::-webkit-scrollbar{width:var(--wim-spacing-sm);height:var(--wim-spacing-sm)}::-webkit-scrollbar-track{background:var(--wim-color-scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--wim-color-scrollbar-thumb);border-radius:var(--wim-radius-full)}::-webkit-scrollbar-thumb:hover{background:oklch(from var(--wim-color-scrollbar-thumb) calc(l * 0.9) c h)}*{scrollbar-color:var(--wim-color-scrollbar-thumb) var(--wim-color-scrollbar-track);scrollbar-width:thin}}.wim-docs-container{padding:24px;color:var(--wim-color-text-primary);background-color:var(--wim-color-surface-app);border-radius:var(--wim-radius-container);transition:background-color var(--wim-duration-base) var(--wim-easing-standard),color var(--wim-duration-base) var(--wim-easing-standard)}.wim-docs-container h1,.wim-docs-container h2,.wim-docs-container h3,.wim-docs-container h4,.wim-docs-container h5,.wim-docs-container h6{margin-top:1.5em;margin-bottom:.5em;color:var(--wim-color-text-primary) !important}.wim-docs-container h1:first-child,.wim-docs-container h2:first-child,.wim-docs-container h3:first-child,.wim-docs-container h4:first-child,.wim-docs-container h5:first-child,.wim-docs-container h6:first-child{margin-top:0}.wim-docs-container p{line-height:1.6;color:var(--wim-color-text-primary) !important}.wim-docs-container ul,.wim-docs-container ol{padding-left:2em;margin:1em 0;color:var(--wim-color-text-primary) !important}.wim-docs-container ul li,.wim-docs-container ol li{margin-bottom:.5em;color:var(--wim-color-text-primary) !important}.wim-docs-container ul li strong,.wim-docs-container ol li strong{color:var(--wim-color-text-primary) !important}.wim-docs-container strong{color:var(--wim-color-text-primary) !important}.wim-docs-container code{padding:2px 4px;color:var(--wim-color-text-primary) !important;background-color:var(--wim-color-surface-variant);border-radius:var(--wim-radius-component)}.wim-docs-container small{color:var(--wim-color-text-secondary) !important}.wim-docs-container table{width:100%;margin:16px 0;color:var(--wim-color-text-primary) !important;border-collapse:collapse}.wim-docs-container table th,.wim-docs-container table td{padding:12px;color:var(--wim-color-text-primary) !important;background-color:var(--wim-color-surface);border:1px solid var(--wim-color-border)}.wim-docs-container table th strong,.wim-docs-container table td strong{color:var(--wim-color-text-primary) !important}.wim-docs-container table th{font-weight:600;background-color:var(--wim-color-surface-variant)}.wim-docs-container a{color:var(--wim-color-primary)}.wim-t code{display:inline-block;padding:3px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:var(--wim-font-size-xs);line-height:1;vertical-align:middle;color:var(--wim-color-text-primary) !important;background-color:oklch(from var(--wim-color-text-primary) l c h/0.01);border:1px solid oklch(from var(--wim-color-text-primary) l c h/0.05);border-radius:var(--wim-radius-sm)}.react-flow svg,.react-flow__edges svg,svg.react-flow__connectionline{display:unset !important;max-width:unset !important;height:unset !important}@layer utilities{.no-scrollbar{scrollbar-width:none !important;-ms-overflow-style:none !important}.no-scrollbar::-webkit-scrollbar{display:none !important}.subtle-scrollbar{scrollbar-color:var(--wim-color-scrollbar-thumb) var(--wim-color-scrollbar-track) !important;scrollbar-width:thin !important}.subtle-scrollbar::-webkit-scrollbar{width:var(--wim-spacing-lg) !important;height:var(--wim-spacing-lg) !important}.subtle-scrollbar::-webkit-scrollbar-track{background:var(--wim-color-scrollbar-track) !important}.subtle-scrollbar::-webkit-scrollbar-thumb{background-color:var(--wim-color-scrollbar-thumb) !important;background-clip:content-box !important;border:1px solid rgba(0,0,0,0) !important;border-radius:var(--wim-radius-lg) !important}.subtle-scrollbar::-webkit-scrollbar-thumb:hover{background-color:oklch(from var(--wim-color-scrollbar-thumb) calc(l * 0.9) c h) !important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;white-space:nowrap;border:0;clip-path:inset(50%)}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-nowrap{white-space:nowrap}.flex-center{display:flex !important;align-items:center !important;justify-content:center !important}.expand-click-area{position:relative}.expand-click-area::before{position:absolute;inset:calc(-1*var(--wim-spacing-lg));content:""}.unselectable{user-select:none}.pointer-events-none{pointer-events:none}.glass-sm{background:var(--wim-glass-bg);border:1px solid var(--wim-glass-border);backdrop-filter:blur(var(--wim-blur-sm))}.glass-md{background:var(--wim-glass-bg);border:1px solid var(--wim-glass-border);box-shadow:var(--wim-shadow-sm);backdrop-filter:blur(var(--wim-blur-md))}.glass-lg{background:var(--wim-glass-bg);border:1px solid var(--wim-glass-border);box-shadow:var(--wim-shadow-md);backdrop-filter:blur(var(--wim-blur-xl))}}body{font-family:var(--wim-font-family-default);font-optical-sizing:auto;font-feature-settings:normal;font-kerning:auto;line-height:var(--wim-line-height-normal);word-spacing:0;letter-spacing:0;line-break:normal;word-break:normal;text-wrap:pretty;overflow-wrap:anywhere;text-size-adjust:100%;text-spacing-trim:normal}body[lang=ja]{font-family:var(--wim-font-family-ja);font-feature-settings:"palt";line-height:var(--wim-line-height-normal-jp);hyphens:manual;line-break:auto}body[lang=ja] p,body[lang=ja] li,body[lang=ja] dd,body[lang=ja] dt{-webkit-line-break:strict;line-break:strict;word-break:break-all}body[lang=ja] h1,body[lang=ja] h2,body[lang=ja] h3,body[lang=ja] h4,body[lang=ja] h5,body[lang=ja] h6{-webkit-line-break:strict;line-break:strict}body[lang=en]{font-family:var(--wim-font-family-en);line-height:var(--wim-line-height-normal);hyphens:auto}body[lang=en] h1,body[lang=en] h2,body[lang=en] h3,body[lang=en] h4,body[lang=en] h5,body[lang=en] h6{hyphens:manual}body[lang=pt]{font-family:var(--wim-font-family-pt);line-height:var(--wim-line-height-normal);hyphens:auto}body[lang=pt] h1,body[lang=pt] h2,body[lang=pt] h3,body[lang=pt] h4,body[lang=pt] h5,body[lang=pt] h6{hyphens:manual}.font-size-ex-large{font-size:var(--wim-font-size-xl)}.font-size-large{font-size:var(--wim-font-size-lg)}.font-size-medium{font-size:var(--wim-font-size-md)}.font-size-small{font-size:var(--wim-font-size-sm)}.font-size-ex-small{font-size:var(--wim-font-size-xs)}.text-color-white{color:var(--wim-color-white)}.text-color-deepgray{color:var(--wim-color-text-primary)}.text-color-gray{color:var(--wim-color-text-secondary)}.text-color-lightgray{color:var(--wim-color-text-tertiary)}.text-color-black{color:var(--wim-color-surface-app)}.text-color-error{color:var(--wim-color-text-danger)}.font-weight-normal{font-weight:var(--wim-font-weight-normal)}.font-weight-bold{font-weight:var(--wim-font-weight-bold)}.font-style-normal{font-style:normal}.font-style-italic{font-style:italic}.font-lines-loose-jpan{line-height:var(--wim-line-height-loose-jp)}.font-lines-normal-jpan{line-height:var(--wim-line-height-normal-jp)}.font-lines-tight-jpan{line-height:var(--wim-line-height-tight-jp)}.font-lines-loose-latn{line-height:var(--wim-line-height-loose)}.font-lines-normal-latn{line-height:var(--wim-line-height-normal)}.font-lines-tight-latn{line-height:var(--wim-line-height-tight)}
1
+ @layer reset, base, component, utilities;@layer reset{@media(prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior:auto !important;transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important}}*,*::before,*::after{box-sizing:border-box}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{padding:0;margin:0}button{padding:0;cursor:pointer;background-color:rgba(0,0,0,0);border:none}ol,ul{padding:0;margin:0;list-style:none}a{color:inherit;text-decoration:none}table{border-spacing:0;border-collapse:collapse}blockquote{margin:0}}@layer base{html{text-size-adjust:100%;line-height:1.15;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;scrollbar-gutter:auto}@media(width >= 769px){body{scrollbar-gutter:stable}}body{color:var(--wim-color-text-primary);overflow-wrap:break-word;background-color:var(--wim-color-surface-app);text-rendering:optimizelegibility;-webkit-tap-highlight-color:rgba(0,0,0,0)}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;line-height:inherit;touch-action:manipulation}textarea{resize:vertical}rt{font-feature-settings:"palt"}dialog,[popover]{overscroll-behavior-block:contain}:focus-visible{outline:none;border-radius:inherit;box-shadow:var(--wim-shadow-focus)}@media(prefers-reduced-motion: reduce){*,::before,::after{scroll-behavior:auto !important;transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important}}::-webkit-scrollbar{width:var(--wim-spacing-sm);height:var(--wim-spacing-sm)}::-webkit-scrollbar-track{background:var(--wim-color-scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--wim-color-scrollbar-thumb);border-radius:var(--wim-radius-full)}::-webkit-scrollbar-thumb:hover{background:oklch(from var(--wim-color-scrollbar-thumb) calc(l * 0.9) c h)}*{scrollbar-color:var(--wim-color-scrollbar-thumb) var(--wim-color-scrollbar-track);scrollbar-width:thin}}.wim-docs-container{padding:24px;color:var(--wim-color-text-primary);background-color:var(--wim-color-surface-app);border-radius:var(--wim-radius-container);transition:background-color var(--wim-duration-base) var(--wim-easing-standard),color var(--wim-duration-base) var(--wim-easing-standard)}.wim-docs-container h1,.wim-docs-container h2,.wim-docs-container h3,.wim-docs-container h4,.wim-docs-container h5,.wim-docs-container h6{margin-top:1.5em;margin-bottom:.5em;color:var(--wim-color-text-primary) !important}.wim-docs-container h1:first-child,.wim-docs-container h2:first-child,.wim-docs-container h3:first-child,.wim-docs-container h4:first-child,.wim-docs-container h5:first-child,.wim-docs-container h6:first-child{margin-top:0}.wim-docs-container p{line-height:1.6;color:var(--wim-color-text-primary) !important}.wim-docs-container ul,.wim-docs-container ol{padding-left:2em;margin:1em 0;color:var(--wim-color-text-primary) !important}.wim-docs-container ul li,.wim-docs-container ol li{margin-bottom:.5em;color:var(--wim-color-text-primary) !important}.wim-docs-container ul li strong,.wim-docs-container ol li strong{color:var(--wim-color-text-primary) !important}.wim-docs-container strong{color:var(--wim-color-text-primary) !important}.wim-docs-container code{font-family:var(--wim-font-family-mono, monospace)}.wim-docs-container code :where(code,pre,kbd,samp){font-family:inherit}.wim-docs-container code{padding:2px 4px;color:var(--wim-color-text-primary) !important;background-color:var(--wim-color-surface-variant);border-radius:var(--wim-radius-component)}.wim-docs-container small{color:var(--wim-color-text-secondary) !important}.wim-docs-container table{width:100%;margin:16px 0;color:var(--wim-color-text-primary) !important;border-collapse:collapse}.wim-docs-container table th,.wim-docs-container table td{padding:12px;color:var(--wim-color-text-primary) !important;background-color:var(--wim-color-surface);border:1px solid var(--wim-color-border)}.wim-docs-container table th strong,.wim-docs-container table td strong{color:var(--wim-color-text-primary) !important}.wim-docs-container table th{font-weight:600;background-color:var(--wim-color-surface-variant)}.wim-docs-container a{color:var(--wim-color-primary)}.wim-t code{display:inline-block;padding:3px 5px;font-family:var(--wim-font-family-mono, monospace)}.wim-t code :where(code,pre,kbd,samp){font-family:inherit}.wim-t code{font-size:var(--wim-font-size-xs);line-height:1;vertical-align:middle;color:var(--wim-color-text-primary) !important;background-color:oklch(from var(--wim-color-text-primary) l c h/0.01);border:1px solid oklch(from var(--wim-color-text-primary) l c h/0.05);border-radius:var(--wim-radius-sm)}.react-flow svg,.react-flow__edges svg,svg.react-flow__connectionline{display:unset !important;max-width:unset !important;height:unset !important}@layer utilities{.no-scrollbar{scrollbar-width:none !important;-ms-overflow-style:none !important}.no-scrollbar::-webkit-scrollbar{display:none !important}.subtle-scrollbar{scrollbar-color:var(--wim-color-scrollbar-thumb) var(--wim-color-scrollbar-track) !important;scrollbar-width:thin !important}.subtle-scrollbar::-webkit-scrollbar{width:var(--wim-spacing-lg) !important;height:var(--wim-spacing-lg) !important}.subtle-scrollbar::-webkit-scrollbar-track{background:var(--wim-color-scrollbar-track) !important}.subtle-scrollbar::-webkit-scrollbar-thumb{background-color:var(--wim-color-scrollbar-thumb) !important;background-clip:content-box !important;border:1px solid rgba(0,0,0,0) !important;border-radius:var(--wim-radius-lg) !important}.subtle-scrollbar::-webkit-scrollbar-thumb:hover{background-color:oklch(from var(--wim-color-scrollbar-thumb) calc(l * 0.9) c h) !important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;white-space:nowrap;border:0;clip-path:inset(50%)}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-nowrap{white-space:nowrap}.flex-center{display:flex !important;align-items:center !important;justify-content:center !important}.expand-click-area{position:relative}.expand-click-area::before{position:absolute;inset:calc(-1*var(--wim-spacing-lg));content:""}.unselectable{user-select:none}.pointer-events-none{pointer-events:none}.glass-sm{background:var(--wim-glass-bg);border:1px solid var(--wim-glass-border);backdrop-filter:blur(var(--wim-blur-sm))}.glass-md{background:var(--wim-glass-bg);border:1px solid var(--wim-glass-border);box-shadow:var(--wim-shadow-sm);backdrop-filter:blur(var(--wim-blur-md))}.glass-lg{background:var(--wim-glass-bg);border:1px solid var(--wim-glass-border);box-shadow:var(--wim-shadow-md);backdrop-filter:blur(var(--wim-blur-xl))}}body{font-family:var(--wim-font-family-default);font-optical-sizing:auto;font-feature-settings:normal;font-kerning:auto;line-height:var(--wim-line-height-normal);word-spacing:0;letter-spacing:0;line-break:normal;word-break:normal;text-wrap:pretty;overflow-wrap:anywhere;text-size-adjust:100%;text-spacing-trim:normal}body[lang=ja]{font-family:var(--wim-font-family-ja);font-feature-settings:"palt";line-height:var(--wim-line-height-normal-jp);hyphens:manual;line-break:auto}body[lang=ja] p,body[lang=ja] li,body[lang=ja] dd,body[lang=ja] dt{-webkit-line-break:strict;line-break:strict;word-break:break-all}body[lang=ja] h1,body[lang=ja] h2,body[lang=ja] h3,body[lang=ja] h4,body[lang=ja] h5,body[lang=ja] h6{-webkit-line-break:strict;line-break:strict}body[lang=en]{font-family:var(--wim-font-family-en);line-height:var(--wim-line-height-normal);hyphens:auto}body[lang=en] h1,body[lang=en] h2,body[lang=en] h3,body[lang=en] h4,body[lang=en] h5,body[lang=en] h6{hyphens:manual}body[lang=pt]{font-family:var(--wim-font-family-pt);line-height:var(--wim-line-height-normal);hyphens:auto}body[lang=pt] h1,body[lang=pt] h2,body[lang=pt] h3,body[lang=pt] h4,body[lang=pt] h5,body[lang=pt] h6{hyphens:manual}.font-size-ex-large{font-size:var(--wim-font-size-xl)}.font-size-large{font-size:var(--wim-font-size-lg)}.font-size-medium{font-size:var(--wim-font-size-md)}.font-size-small{font-size:var(--wim-font-size-sm)}.font-size-ex-small{font-size:var(--wim-font-size-xs)}.text-color-white{color:var(--wim-color-white)}.text-color-deepgray{color:var(--wim-color-text-primary)}.text-color-gray{color:var(--wim-color-text-secondary)}.text-color-lightgray{color:var(--wim-color-text-tertiary)}.text-color-black{color:var(--wim-color-surface-app)}.text-color-error{color:var(--wim-color-text-danger)}.font-weight-normal{font-weight:var(--wim-font-weight-normal)}.font-weight-bold{font-weight:var(--wim-font-weight-bold)}.font-style-normal{font-style:normal}.font-style-italic{font-style:italic}.font-lines-loose-jpan{line-height:var(--wim-line-height-loose-jp)}.font-lines-normal-jpan{line-height:var(--wim-line-height-normal-jp)}.font-lines-tight-jpan{line-height:var(--wim-line-height-tight-jp)}.font-lines-loose-latn{line-height:var(--wim-line-height-loose)}.font-lines-normal-latn{line-height:var(--wim-line-height-normal)}.font-lines-tight-latn{line-height:var(--wim-line-height-tight)}