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.
- package/dist/components/_internal/FieldCharacterCount/field-character-count.module.cjs +1 -1
- package/dist/components/_internal/FieldCharacterCount/field-character-count.module.js +1 -1
- package/dist/components/_internal/accessibleName.cjs +2 -0
- package/dist/components/_internal/accessibleName.d.ts +54 -0
- package/dist/components/_internal/accessibleName.js +7 -0
- package/dist/components/_internal/useIndicator.cjs +1 -1
- package/dist/components/_internal/useIndicator.d.ts +16 -1
- package/dist/components/_internal/useIndicator.js +15 -12
- package/dist/components/ai/CodeBlock/code-block.module.cjs +1 -1
- package/dist/components/ai/CodeBlock/code-block.module.js +1 -1
- package/dist/components/ai/CodeDiffViewer/code-diff-viewer.module.cjs +1 -1
- package/dist/components/ai/CodeDiffViewer/code-diff-viewer.module.js +2 -2
- package/dist/components/ai/MarkdownRenderer/markdown-renderer.module.cjs +1 -1
- package/dist/components/ai/MarkdownRenderer/markdown-renderer.module.js +1 -1
- package/dist/components/ai/StreamingText/streaming-text.module.cjs +1 -1
- package/dist/components/ai/StreamingText/streaming-text.module.js +1 -1
- package/dist/components/ai/Terminal/terminal.module.cjs +1 -1
- package/dist/components/ai/Terminal/terminal.module.js +1 -1
- package/dist/components/data-display/Badge/badge.module.cjs +1 -1
- package/dist/components/data-display/Badge/badge.module.js +1 -1
- package/dist/components/data-display/Calendar/calendar.module.cjs +1 -1
- package/dist/components/data-display/Calendar/calendar.module.js +1 -1
- package/dist/components/data-display/Chip/chip.module.cjs +1 -1
- package/dist/components/data-display/Chip/chip.module.js +2 -2
- package/dist/components/data-display/JsonViewer/json-viewer.module.cjs +1 -1
- package/dist/components/data-display/JsonViewer/json-viewer.module.js +3 -3
- package/dist/components/data-display/Markdown/markdown.module.cjs +1 -1
- package/dist/components/data-display/Markdown/markdown.module.js +1 -1
- package/dist/components/data-display/PullToRefresh/PullToRefresh.cjs +1 -1
- package/dist/components/data-display/PullToRefresh/PullToRefresh.js +22 -20
- package/dist/components/data-display/Stats/stats.module.cjs +1 -1
- package/dist/components/data-display/Stats/stats.module.js +1 -1
- package/dist/components/data-display/Tag/tag.module.cjs +1 -1
- package/dist/components/data-display/Tag/tag.module.js +1 -1
- package/dist/components/data-display/TreeView/tree-view.module.cjs +1 -1
- package/dist/components/data-display/TreeView/tree-view.module.js +2 -2
- package/dist/components/feedback/Alert/alert.module.cjs +1 -1
- package/dist/components/feedback/Alert/alert.module.js +2 -2
- package/dist/components/feedback/ErrorBoundary/errorboundary.module.cjs +1 -1
- package/dist/components/feedback/ErrorBoundary/errorboundary.module.js +1 -1
- package/dist/components/feedback/Notification/notification.module.cjs +1 -1
- package/dist/components/feedback/Notification/notification.module.js +2 -2
- package/dist/components/feedback/Progress/Progress.cjs +1 -1
- package/dist/components/feedback/Progress/Progress.d.ts +15 -6
- package/dist/components/feedback/Progress/Progress.js +29 -28
- package/dist/components/feedback/ProgressRing/ProgressRing.cjs +2 -0
- package/dist/components/feedback/ProgressRing/ProgressRing.d.ts +57 -0
- package/dist/components/feedback/ProgressRing/ProgressRing.js +51 -0
- package/dist/components/feedback/ProgressRing/progress-ring.module.cjs +2 -0
- package/dist/components/feedback/ProgressRing/progress-ring.module.js +25 -0
- package/dist/components/feedback/Result/Result.cjs +1 -1
- package/dist/components/feedback/Result/Result.d.ts +11 -1
- package/dist/components/feedback/Result/Result.js +3 -3
- package/dist/components/feedback/Result/result.module.cjs +1 -1
- package/dist/components/feedback/Result/result.module.js +8 -3
- package/dist/components/form/Cascader/cascader.module.cjs +1 -1
- package/dist/components/form/Cascader/cascader.module.js +6 -6
- package/dist/components/form/SignaturePad/signature-pad.module.cjs +1 -1
- package/dist/components/form/SignaturePad/signature-pad.module.js +6 -6
- package/dist/components/form/SplitButton/SplitButton.cjs +2 -0
- package/dist/components/form/SplitButton/SplitButton.d.ts +78 -0
- package/dist/components/form/SplitButton/SplitButton.js +48 -0
- package/dist/components/form/SplitButton/split-button.module.cjs +2 -0
- package/dist/components/form/SplitButton/split-button.module.js +11 -0
- package/dist/components/form/Transfer/transfer.module.cjs +1 -1
- package/dist/components/form/Transfer/transfer.module.js +6 -6
- package/dist/components/form/TreeSelect/tree-select.module.cjs +1 -1
- package/dist/components/form/TreeSelect/tree-select.module.js +6 -6
- package/dist/components/typography/Code/code.module.cjs +1 -1
- package/dist/components/typography/Code/code.module.js +1 -1
- package/dist/components/typography/Text/Text.cjs +1 -1
- package/dist/components/typography/Text/Text.d.ts +24 -0
- package/dist/components/typography/Text/Text.js +13 -12
- package/dist/components/typography/Text/text.module.cjs +1 -1
- package/dist/components/typography/Text/text.module.js +11 -10
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.d.ts +1 -0
- package/dist/feedback.js +2 -1
- package/dist/form.cjs +1 -1
- package/dist/form.d.ts +1 -0
- package/dist/form.js +2 -1
- package/dist/i18n/generated/keys.d.ts +1 -1
- package/dist/icon/grid.cjs +2 -0
- package/dist/icon/grid.js +72 -0
- package/dist/icon/index.cjs +1 -1
- package/dist/icon/index.d.ts +5 -1
- package/dist/icon/index.js +98 -94
- package/dist/icon/menu.cjs +2 -0
- package/dist/icon/menu.js +36 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +51 -49
- package/dist/index.cjs +1 -1
- package/dist/index.js +218 -214
- package/dist/llms-full.txt +76 -54
- package/dist/llms.txt +50 -41
- package/dist/locales/en/components.json +3 -1
- package/dist/locales/ja/components.json +3 -1
- package/dist/locales/pt/components.json +3 -1
- package/dist/overlay.cjs +1 -1
- package/dist/overlay.js +4 -4
- package/dist/reset.css +1 -1
- package/dist/styles.css +2 -2
- package/dist/types/generated-tokens.d.ts +1 -1
- package/dist/wimui.umd.css +1 -1
- package/dist/wimui.umd.js +5 -5
- 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.
|
|
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.
|
|
79
|
-
9.
|
|
80
|
-
10.
|
|
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 Card — place 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
|
-
- **
|
|
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/
|
|
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 {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
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 {
|
|
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:
|
|
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)}
|