@agentero/design-system 0.30.0 → 0.31.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/mcp/manifests/components.html +588 -102
- package/mcp/manifests/components.json +849 -17
- package/package.json +6 -1
- package/src/combobox/combobox.d.ts +200 -0
- package/src/combobox/combobox.js +118 -0
- package/src/combobox/icons.d.ts +10 -0
- package/src/combobox/icons.js +13 -0
- package/src/combobox/index.d.ts +34 -0
- package/src/combobox/index.js +13 -0
- package/src/field-text/field-text.js +9 -9
- package/src/form-text/form-text.js +7 -7
|
@@ -588,13 +588,13 @@
|
|
|
588
588
|
<header>
|
|
589
589
|
<div class="wrap">
|
|
590
590
|
<h1>Manifest Debugger</h1>
|
|
591
|
-
<div class="summary"><a class="filter-pill all" data-k="all" href="#filter-all">All</a><span class="filter-pill ok" aria-disabled="true">
|
|
591
|
+
<div class="summary"><a class="filter-pill all" data-k="all" href="#filter-all">All</a><span class="filter-pill ok" aria-disabled="true">33 components ok</span><span class="filter-pill ok" aria-disabled="true">263 stories ok</span></div>
|
|
592
592
|
</div>
|
|
593
593
|
</header>
|
|
594
594
|
<main>
|
|
595
595
|
<div class="wrap">
|
|
596
596
|
<div class="note ok" style="margin-bottom: 16px;">
|
|
597
|
-
Using <code>react-component-meta</code>. Generation took <strong>
|
|
597
|
+
Using <code>react-component-meta</code>. Generation took <strong>3.4s</strong>.
|
|
598
598
|
</div>
|
|
599
599
|
<h2 class="section-title">Components</h2>
|
|
600
600
|
<div class="grid" role="list">
|
|
@@ -2811,6 +2811,492 @@ import { CheckList } from '@agentero/design-system/check-list';
|
|
|
2811
2811
|
</div>
|
|
2812
2812
|
|
|
2813
2813
|
|
|
2814
|
+
</div>
|
|
2815
|
+
</article>
|
|
2816
|
+
<article
|
|
2817
|
+
class="card
|
|
2818
|
+
no-error
|
|
2819
|
+
no-info
|
|
2820
|
+
no-story-error
|
|
2821
|
+
no-doc-error"
|
|
2822
|
+
role="listitem"
|
|
2823
|
+
aria-label="Combobox.Root">
|
|
2824
|
+
<div class="head">
|
|
2825
|
+
<div class="title">
|
|
2826
|
+
<h2><span class="status-dot dot-ok"></span> Combobox.Root</h2>
|
|
2827
|
+
<div class="badges">
|
|
2828
|
+
<label for="c-7-components-combobox-props" class="badge ok as-toggle">38 prop types</label>
|
|
2829
|
+
|
|
2830
|
+
<label for="c-7-components-combobox-stories" class="badge ok as-toggle">7 stories</label>
|
|
2831
|
+
|
|
2832
|
+
|
|
2833
|
+
</div>
|
|
2834
|
+
</div>
|
|
2835
|
+
<div class="meta" title="./src/combobox/combobox.stories.tsx">components-combobox · ./src/combobox/combobox.stories.tsx</div>
|
|
2836
|
+
<div>Root provider for an input-triggered filterable list</div>
|
|
2837
|
+
<div class="hint">Combobox is a text input that filters a list and writes the chosen option back
|
|
2838
|
+
into itself. Focusing the input or typing opens the list; picking a row fills the
|
|
2839
|
+
input and closes it. Built on Base UI, whose Combobox primitive owns the
|
|
2840
|
+
filtering, the keyboard navigation and the `role="combobox"` wiring.</div>
|
|
2841
|
+
<div class="kv"><span class="chip">summary: Root provider for an input-triggered filterable list</span><span class="chip">see: {@link https://base-ui.com/react/components/combobox Base UI Combobox}</span><span class="chip">example: ```tsx
|
|
2842
|
+
import { Combobox } from '@agentero/design-system/combobox';
|
|
2843
|
+
|
|
2844
|
+
<Combobox.Root items={states}>
|
|
2845
|
+
<Combobox.Input placeholder="Search states" />
|
|
2846
|
+
<Combobox.Content>
|
|
2847
|
+
<Combobox.Empty>No matches found</Combobox.Empty>
|
|
2848
|
+
<Combobox.List>
|
|
2849
|
+
{(state: string) => <Combobox.Item key={state} value={state}>{state}</Combobox.Item>}
|
|
2850
|
+
</Combobox.List>
|
|
2851
|
+
</Combobox.Content>
|
|
2852
|
+
</Combobox.Root>
|
|
2853
|
+
```</span></div>
|
|
2854
|
+
</div>
|
|
2855
|
+
|
|
2856
|
+
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
2857
|
+
|
|
2858
|
+
|
|
2859
|
+
<input id="c-7-components-combobox-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
2860
|
+
|
|
2861
|
+
|
|
2862
|
+
<input id="c-7-components-combobox-props" class="tg tg-props" type="checkbox" hidden />
|
|
2863
|
+
|
|
2864
|
+
<div class="panels">
|
|
2865
|
+
|
|
2866
|
+
|
|
2867
|
+
|
|
2868
|
+
<div class="panel panel-props">
|
|
2869
|
+
<div class="note ok">
|
|
2870
|
+
<div class="row">
|
|
2871
|
+
<span class="ex-name">Prop types <small>(react-component-meta)</small></span>
|
|
2872
|
+
<span class="badge ok">38 prop types</span>
|
|
2873
|
+
</div>
|
|
2874
|
+
<pre><code>Component: src/combobox/index.ts::Combobox</code></pre>
|
|
2875
|
+
<pre><code>Props:</code></pre>
|
|
2876
|
+
<pre><code>/**
|
|
2877
|
+
* A ref to imperative actions.
|
|
2878
|
+
* - `unmount`: Manually unmounts the combobox.
|
|
2879
|
+
* Call this after any externally controlled closing animation finishes.
|
|
2880
|
+
*/
|
|
2881
|
+
actionsRef?: RefObject<Actions | null>
|
|
2882
|
+
|
|
2883
|
+
/**
|
|
2884
|
+
* Provides a hint to the browser for autofill.
|
|
2885
|
+
*/
|
|
2886
|
+
autoComplete?: string
|
|
2887
|
+
|
|
2888
|
+
/**
|
|
2889
|
+
* Whether the first matching item is highlighted automatically while filtering.
|
|
2890
|
+
*/
|
|
2891
|
+
autoHighlight?: boolean = false
|
|
2892
|
+
|
|
2893
|
+
children?: ReactNode
|
|
2894
|
+
|
|
2895
|
+
/**
|
|
2896
|
+
* The uncontrolled input value when initially rendered.
|
|
2897
|
+
*
|
|
2898
|
+
* To render a controlled input, use the `inputValue` prop instead.
|
|
2899
|
+
*/
|
|
2900
|
+
defaultInputValue?: string | number | readonly string[] | undefined
|
|
2901
|
+
|
|
2902
|
+
/**
|
|
2903
|
+
* Whether the popup is initially open.
|
|
2904
|
+
*
|
|
2905
|
+
* To render a controlled popup, use the `open` prop instead.
|
|
2906
|
+
*/
|
|
2907
|
+
defaultOpen?: boolean = false
|
|
2908
|
+
|
|
2909
|
+
/**
|
|
2910
|
+
* The uncontrolled selected value of the combobox when it's initially rendered.
|
|
2911
|
+
*
|
|
2912
|
+
* To render a controlled combobox, use the `value` prop instead.
|
|
2913
|
+
*/
|
|
2914
|
+
defaultValue?: unknown
|
|
2915
|
+
|
|
2916
|
+
/**
|
|
2917
|
+
* Whether the component should ignore user interaction.
|
|
2918
|
+
*/
|
|
2919
|
+
disabled?: boolean = false
|
|
2920
|
+
|
|
2921
|
+
/**
|
|
2922
|
+
* Filter function used to match items vs input query.
|
|
2923
|
+
* Receives the source item, which is the derived value's item when `items` is a `createItems()`
|
|
2924
|
+
* collection, and the item itself otherwise.
|
|
2925
|
+
*/
|
|
2926
|
+
filter?: ((item: unknown, query: string, itemToString?: ((item: unknown) => string) | undefined) => boolean) | null | undefined
|
|
2927
|
+
|
|
2928
|
+
/**
|
|
2929
|
+
* Filtered items to display in the list.
|
|
2930
|
+
* When provided, the list uses these items instead of filtering the `items` prop internally.
|
|
2931
|
+
* When `items` is also provided, this array must preserve its flat or grouped structure.
|
|
2932
|
+
* With a `createItems()` collection, pass source items rather than derived values.
|
|
2933
|
+
* Nullish entries are not supported, as in `items`.
|
|
2934
|
+
* Use when you want to control filtering logic externally with the `useFilter()` hook.
|
|
2935
|
+
*/
|
|
2936
|
+
filteredItems?: readonly unknown[] | readonly Group<unknown>[] | undefined
|
|
2937
|
+
|
|
2938
|
+
/**
|
|
2939
|
+
* Identifies the form that owns the internal input.
|
|
2940
|
+
* Useful when the combobox is rendered outside the form.
|
|
2941
|
+
*/
|
|
2942
|
+
form?: string
|
|
2943
|
+
|
|
2944
|
+
/**
|
|
2945
|
+
* Whether list items are presented in a grid layout.
|
|
2946
|
+
* When enabled, arrow keys navigate across rows and columns inferred from DOM rows.
|
|
2947
|
+
*/
|
|
2948
|
+
grid?: boolean = false
|
|
2949
|
+
|
|
2950
|
+
/**
|
|
2951
|
+
* Whether moving the pointer over items should highlight them.
|
|
2952
|
+
* Disabling this prop allows CSS `:hover` to be differentiated from the `:focus` (`data-highlighted`) state.
|
|
2953
|
+
*/
|
|
2954
|
+
highlightItemOnHover?: boolean = true
|
|
2955
|
+
|
|
2956
|
+
/**
|
|
2957
|
+
* The id of the component.
|
|
2958
|
+
*/
|
|
2959
|
+
id?: string
|
|
2960
|
+
|
|
2961
|
+
/**
|
|
2962
|
+
* Whether the list is rendered inline without using the component's own popup.
|
|
2963
|
+
*
|
|
2964
|
+
* Specify `open` unconditionally in conjunction with this prop so the list is considered
|
|
2965
|
+
* visible: `<Combobox.Root inline open>`
|
|
2966
|
+
*
|
|
2967
|
+
* In a `Combobox.Root` > `Dialog.Root` composition, bind the Combobox's `open` and
|
|
2968
|
+
* `onOpenChange` props to the `Dialog`'s `open` and `onOpenChange` state instead so the
|
|
2969
|
+
* component resets its transient state (filter query, highlighted item, and input value) when
|
|
2970
|
+
* the dialog closes.
|
|
2971
|
+
*/
|
|
2972
|
+
inline?: boolean = false
|
|
2973
|
+
|
|
2974
|
+
/**
|
|
2975
|
+
* A ref to the hidden input element.
|
|
2976
|
+
*/
|
|
2977
|
+
inputRef?: Ref<HTMLInputElement> | undefined
|
|
2978
|
+
|
|
2979
|
+
/**
|
|
2980
|
+
* The input value of the combobox. Use when controlled.
|
|
2981
|
+
*/
|
|
2982
|
+
inputValue?: string | number | readonly string[] | undefined
|
|
2983
|
+
|
|
2984
|
+
/**
|
|
2985
|
+
* Custom comparison logic used to determine if a combobox item value matches the current selected value. Useful when item values are objects without matching referentially.
|
|
2986
|
+
* With a `createItems()` collection, both arguments are derived values.
|
|
2987
|
+
* Defaults to `Object.is` comparison.
|
|
2988
|
+
*/
|
|
2989
|
+
isItemEqualToValue?: (itemValue: unknown, value: unknown) => boolean
|
|
2990
|
+
|
|
2991
|
+
/**
|
|
2992
|
+
* The items to be displayed in the list.
|
|
2993
|
+
* Can be a flat array of items, an array of groups with items, or a collection created by
|
|
2994
|
+
* the `createItems()` function, which derives each item's selection value and label.
|
|
2995
|
+
* Nullish entries are not supported: remove them from the data before passing it.
|
|
2996
|
+
*/
|
|
2997
|
+
items?: readonly any[] | readonly Group<any>[] | ComboboxItemCollection<unknown, unknown> | undefined
|
|
2998
|
+
|
|
2999
|
+
/**
|
|
3000
|
+
* When the item values are objects (`<Combobox.Item value={object}>`), this function converts the object value to a string representation for display in the input.
|
|
3001
|
+
* If the shape of the object is `{ value, label }`, the label will be used automatically without needing to specify this prop.
|
|
3002
|
+
* With a `createItems()` collection, this receives the derived value, and the collection's
|
|
3003
|
+
* `getLabel` takes precedence for values it can resolve.
|
|
3004
|
+
*/
|
|
3005
|
+
itemToStringLabel?: (itemValue: unknown) => string
|
|
3006
|
+
|
|
3007
|
+
/**
|
|
3008
|
+
* When the item values are objects (`<Combobox.Item value={object}>`), this function converts the object value to a string representation for form submission.
|
|
3009
|
+
* If the shape of the object is `{ value, label }`, the value will be used automatically without needing to specify this prop.
|
|
3010
|
+
* With a `createItems()` collection, this receives the derived value.
|
|
3011
|
+
*/
|
|
3012
|
+
itemToStringValue?: (itemValue: unknown) => string
|
|
3013
|
+
|
|
3014
|
+
/**
|
|
3015
|
+
* The maximum number of items to display in the list.
|
|
3016
|
+
*/
|
|
3017
|
+
limit?: number = -1
|
|
3018
|
+
|
|
3019
|
+
/**
|
|
3020
|
+
* The locale to use for string comparison.
|
|
3021
|
+
* Defaults to the user's runtime locale.
|
|
3022
|
+
*/
|
|
3023
|
+
locale?: LocalesArgument
|
|
3024
|
+
|
|
3025
|
+
/**
|
|
3026
|
+
* Whether to loop keyboard focus back to the input when the end of the list is reached while using the arrow keys. The first item can then be reached by pressing <kbd>ArrowDown</kbd> again from the input, or the last item can be reached by pressing <kbd>ArrowUp</kbd> from the input.
|
|
3027
|
+
* The input is always included in the focus loop per [ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/).
|
|
3028
|
+
* When disabled, focus does not move when on the last element and the user presses <kbd>ArrowDown</kbd>, or when on the first element and the user presses <kbd>ArrowUp</kbd>.
|
|
3029
|
+
*/
|
|
3030
|
+
loopFocus?: boolean = true
|
|
3031
|
+
|
|
3032
|
+
/**
|
|
3033
|
+
* Determines if the popup enters a modal state when open.
|
|
3034
|
+
* - `true`: user interaction is limited to the popup: document page scroll is locked and pointer interactions on outside elements are disabled.
|
|
3035
|
+
* - `false`: user interaction with the rest of the document is allowed.
|
|
3036
|
+
*
|
|
3037
|
+
* On touch devices, a `true` modal blocks outside taps but leaves the page scrollable unless the popup spans nearly the full viewport width, matching native iOS behavior.
|
|
3038
|
+
*/
|
|
3039
|
+
modal?: boolean = false
|
|
3040
|
+
|
|
3041
|
+
/**
|
|
3042
|
+
* Whether multiple items can be selected.
|
|
3043
|
+
*/
|
|
3044
|
+
multiple?: false = false
|
|
3045
|
+
|
|
3046
|
+
/**
|
|
3047
|
+
* Identifies the field when a form is submitted.
|
|
3048
|
+
*/
|
|
3049
|
+
name?: string
|
|
3050
|
+
|
|
3051
|
+
/**
|
|
3052
|
+
* Event handler called when the input value changes.
|
|
3053
|
+
*/
|
|
3054
|
+
onInputValueChange?: (inputValue: string, eventDetails: ChangeEventDetails) => void
|
|
3055
|
+
|
|
3056
|
+
/**
|
|
3057
|
+
* Callback fired when an item is highlighted or unhighlighted.
|
|
3058
|
+
* Receives the highlighted item value (or `undefined` if no item is highlighted) and event details with a `reason` property describing why the highlight changed.
|
|
3059
|
+
* The `reason` can be:
|
|
3060
|
+
* - `'keyboard'`: the highlight changed due to keyboard navigation.
|
|
3061
|
+
* - `'pointer'`: the highlight changed due to pointer hovering.
|
|
3062
|
+
* - `'none'`: the highlight changed programmatically.
|
|
3063
|
+
*/
|
|
3064
|
+
onItemHighlighted?: (highlightedValue: unknown, eventDetails: HighlightEventDetails) => void
|
|
3065
|
+
|
|
3066
|
+
/**
|
|
3067
|
+
* Event handler called when the popup is opened or closed.
|
|
3068
|
+
*/
|
|
3069
|
+
onOpenChange?: (open: boolean, eventDetails: ChangeEventDetails) => void
|
|
3070
|
+
|
|
3071
|
+
/**
|
|
3072
|
+
* Event handler called after any animations complete when the popup is opened or closed.
|
|
3073
|
+
*/
|
|
3074
|
+
onOpenChangeComplete?: (open: boolean) => void
|
|
3075
|
+
|
|
3076
|
+
/**
|
|
3077
|
+
* Event handler called when the selected value of the combobox changes.
|
|
3078
|
+
*/
|
|
3079
|
+
onValueChange?: (value: unknown, eventDetails: ChangeEventDetails) => void
|
|
3080
|
+
|
|
3081
|
+
/**
|
|
3082
|
+
* Whether the popup is currently open. Use when controlled.
|
|
3083
|
+
*/
|
|
3084
|
+
open?: boolean
|
|
3085
|
+
|
|
3086
|
+
/**
|
|
3087
|
+
* Whether the popup opens when clicking the input.
|
|
3088
|
+
*/
|
|
3089
|
+
openOnInputClick?: boolean = true
|
|
3090
|
+
|
|
3091
|
+
/**
|
|
3092
|
+
* Whether the user should be unable to choose a different option from the popup.
|
|
3093
|
+
*/
|
|
3094
|
+
readOnly?: boolean = false
|
|
3095
|
+
|
|
3096
|
+
/**
|
|
3097
|
+
* Whether the user must choose a value before submitting a form.
|
|
3098
|
+
*/
|
|
3099
|
+
required?: boolean = false
|
|
3100
|
+
|
|
3101
|
+
/**
|
|
3102
|
+
* The selected value of the combobox. Use when controlled.
|
|
3103
|
+
*/
|
|
3104
|
+
value?: unknown
|
|
3105
|
+
|
|
3106
|
+
/**
|
|
3107
|
+
* Whether the items are being externally virtualized.
|
|
3108
|
+
*/
|
|
3109
|
+
virtualized?: boolean = false</code></pre>
|
|
3110
|
+
</div>
|
|
3111
|
+
</div>
|
|
3112
|
+
|
|
3113
|
+
<div class="panel panel-stories">
|
|
3114
|
+
|
|
3115
|
+
|
|
3116
|
+
|
|
3117
|
+
<div class="note ok">
|
|
3118
|
+
<div class="row">
|
|
3119
|
+
<span class="ex-name">Imports</span>
|
|
3120
|
+
</div>
|
|
3121
|
+
<pre><code>import { Button, Combobox, Field, FieldText, IconSearch, Label, Modal, Skeleton } from "@agentero/design-system";
|
|
3122
|
+
import { Suspense } from "react";</code></pre>
|
|
3123
|
+
</div>
|
|
3124
|
+
|
|
3125
|
+
|
|
3126
|
+
<div class="note ok">
|
|
3127
|
+
<div class="row">
|
|
3128
|
+
<span class="ex-name">Default</span>
|
|
3129
|
+
<span class="badge ok">story ok</span>
|
|
3130
|
+
</div>
|
|
3131
|
+
|
|
3132
|
+
<div class="hint">The common case: options are already in memory and Base UI filters them against
|
|
3133
|
+
what you type. Selecting a row fills the input and closes the list.</div>
|
|
3134
|
+
<pre><code>const Default = () => (
|
|
3135
|
+
<Combobox.Root items={STATES}>
|
|
3136
|
+
<Combobox.Input placeholder="Search states" aria-label="Search states" />
|
|
3137
|
+
<Combobox.Content>
|
|
3138
|
+
<Combobox.Empty>No matches found</Combobox.Empty>
|
|
3139
|
+
<Combobox.List>
|
|
3140
|
+
{(state: string) => (
|
|
3141
|
+
<Combobox.Item key={state} value={state}>
|
|
3142
|
+
{state}
|
|
3143
|
+
</Combobox.Item>
|
|
3144
|
+
)}
|
|
3145
|
+
</Combobox.List>
|
|
3146
|
+
</Combobox.Content>
|
|
3147
|
+
</Combobox.Root>
|
|
3148
|
+
);</code></pre>
|
|
3149
|
+
</div>
|
|
3150
|
+
<div class="note ok">
|
|
3151
|
+
<div class="row">
|
|
3152
|
+
<span class="ex-name">No Matches</span>
|
|
3153
|
+
<span class="badge ok">story ok</span>
|
|
3154
|
+
</div>
|
|
3155
|
+
|
|
3156
|
+
<div class="hint">`Empty` stays mounted so screen readers announce the change; it renders its
|
|
3157
|
+
children only while nothing matches. It needs `items` on `Root` to know that.</div>
|
|
3158
|
+
<pre><code>const NoMatches = () => (
|
|
3159
|
+
<Combobox.Root items={STATES}>
|
|
3160
|
+
<Combobox.Input placeholder="Search states" aria-label="Search states" />
|
|
3161
|
+
<Combobox.Content>
|
|
3162
|
+
<Combobox.Empty>No matches found</Combobox.Empty>
|
|
3163
|
+
<Combobox.List>
|
|
3164
|
+
{(state: string) => (
|
|
3165
|
+
<Combobox.Item key={state} value={state}>
|
|
3166
|
+
{state}
|
|
3167
|
+
</Combobox.Item>
|
|
3168
|
+
)}
|
|
3169
|
+
</Combobox.List>
|
|
3170
|
+
</Combobox.Content>
|
|
3171
|
+
</Combobox.Root>
|
|
3172
|
+
);</code></pre>
|
|
3173
|
+
</div>
|
|
3174
|
+
<div class="note ok">
|
|
3175
|
+
<div class="row">
|
|
3176
|
+
<span class="ex-name">Async Search</span>
|
|
3177
|
+
<span class="badge ok">story ok</span>
|
|
3178
|
+
</div>
|
|
3179
|
+
|
|
3180
|
+
<div class="hint">Options fetched as you type, the way the apps load data: the rows are a component
|
|
3181
|
+
that suspends on the request, so a `Suspense` boundary inside `Content` shows
|
|
3182
|
+
placeholder rows until they land. Nothing tracks `loading` by hand and no stale
|
|
3183
|
+
list lingers under the wait: the data is read by query, which is also what makes
|
|
3184
|
+
out-of-order responses harmless. Drop a `useSuspenseQuery` where `use()` is.</div>
|
|
3185
|
+
<pre><code>const AsyncSearch = () => <SuspenseSearch />;</code></pre>
|
|
3186
|
+
</div>
|
|
3187
|
+
<div class="note ok">
|
|
3188
|
+
<div class="row">
|
|
3189
|
+
<span class="ex-name">Async Search With Status</span>
|
|
3190
|
+
<span class="badge ok">story ok</span>
|
|
3191
|
+
</div>
|
|
3192
|
+
|
|
3193
|
+
<div class="hint">The same search without Suspense, for a consumer that gets a `loading` flag from
|
|
3194
|
+
its data layer instead: `filter={null}`, the rows arrive through `filteredItems`,
|
|
3195
|
+
`Content` is marked busy and `Status` announces the wait. The list is cleared
|
|
3196
|
+
before each request and a request that is no longer the latest is dropped.</div>
|
|
3197
|
+
<pre><code>const AsyncSearchWithStatus = () => <StatusSearch />;</code></pre>
|
|
3198
|
+
</div>
|
|
3199
|
+
<div class="note ok">
|
|
3200
|
+
<div class="row">
|
|
3201
|
+
<span class="ex-name">Inside Field Text</span>
|
|
3202
|
+
<span class="badge ok">story ok</span>
|
|
3203
|
+
</div>
|
|
3204
|
+
|
|
3205
|
+
<div class="hint">Dropped into a `FieldText`, the input takes the label, the description and
|
|
3206
|
+
the error from the field with nothing wired by hand: `Combobox.Input` reads the
|
|
3207
|
+
same `InputContext` the plain `Input` does.</div>
|
|
3208
|
+
<pre><code>const InsideFieldText = () => (
|
|
3209
|
+
<FieldText invalid required>
|
|
3210
|
+
<Label>Agency</Label>
|
|
3211
|
+
<Combobox.Root items={STATES}>
|
|
3212
|
+
<Combobox.Input placeholder="Search agencies" />
|
|
3213
|
+
<Combobox.Content>
|
|
3214
|
+
<Combobox.Empty>No matches found</Combobox.Empty>
|
|
3215
|
+
<Combobox.List>
|
|
3216
|
+
{(state: string) => (
|
|
3217
|
+
<Combobox.Item key={state} value={state}>
|
|
3218
|
+
{state}
|
|
3219
|
+
</Combobox.Item>
|
|
3220
|
+
)}
|
|
3221
|
+
</Combobox.List>
|
|
3222
|
+
</Combobox.Content>
|
|
3223
|
+
</Combobox.Root>
|
|
3224
|
+
<Field.Description>The agency this agent will be added to.</Field.Description>
|
|
3225
|
+
<Field.Error errors={[{ message: 'Pick an agency from the list' }]} />
|
|
3226
|
+
</FieldText>
|
|
3227
|
+
);</code></pre>
|
|
3228
|
+
</div>
|
|
3229
|
+
<div class="note ok">
|
|
3230
|
+
<div class="row">
|
|
3231
|
+
<span class="ex-name">With Leading Icon</span>
|
|
3232
|
+
<span class="badge ok">story ok</span>
|
|
3233
|
+
</div>
|
|
3234
|
+
|
|
3235
|
+
<div class="hint">A leading icon is composed around the input, not baked in: not every combobox
|
|
3236
|
+
is a search (a FEIN lookup or a template picker are not), so the component
|
|
3237
|
+
ships no icon of its own. Until `InputGroup` lands in the design system, the
|
|
3238
|
+
marketplace search fields get theirs like this — the icon overlaid, the input
|
|
3239
|
+
padded past it.</div>
|
|
3240
|
+
<pre><code>const WithLeadingIcon = () => (
|
|
3241
|
+
<Combobox.Root items={STATES}>
|
|
3242
|
+
<div className="relative">
|
|
3243
|
+
<IconSearch
|
|
3244
|
+
aria-hidden
|
|
3245
|
+
className="pointer-events-none absolute top-1/2 left-3 z-1 size-6 -translate-y-1/2 [&>path]:fill-icon-default-base-tertiary"
|
|
3246
|
+
/>
|
|
3247
|
+
<Combobox.Input className="pl-11" placeholder="Search states" aria-label="Search states" />
|
|
3248
|
+
</div>
|
|
3249
|
+
<Combobox.Content>
|
|
3250
|
+
<Combobox.Empty>No matches found</Combobox.Empty>
|
|
3251
|
+
<Combobox.List>
|
|
3252
|
+
{(state: string) => (
|
|
3253
|
+
<Combobox.Item key={state} value={state}>
|
|
3254
|
+
{state}
|
|
3255
|
+
</Combobox.Item>
|
|
3256
|
+
)}
|
|
3257
|
+
</Combobox.List>
|
|
3258
|
+
</Combobox.Content>
|
|
3259
|
+
</Combobox.Root>
|
|
3260
|
+
);</code></pre>
|
|
3261
|
+
</div>
|
|
3262
|
+
<div class="note ok">
|
|
3263
|
+
<div class="row">
|
|
3264
|
+
<span class="ex-name">Inside Modal</span>
|
|
3265
|
+
<span class="badge ok">story ok</span>
|
|
3266
|
+
</div>
|
|
3267
|
+
|
|
3268
|
+
<div class="hint">Inside a `Modal`, which is a Radix Dialog. The surface portals to the body, so
|
|
3269
|
+
this checks that the dialog's modal layer neither blocks pointer events on the
|
|
3270
|
+
list nor treats a click in it as a click outside and closes.</div>
|
|
3271
|
+
<pre><code>const InsideModal = () => (
|
|
3272
|
+
<Modal.Root>
|
|
3273
|
+
<Modal.Trigger asChild>
|
|
3274
|
+
<Button variant="secondary">Assign agency</Button>
|
|
3275
|
+
</Modal.Trigger>
|
|
3276
|
+
<Modal.Content>
|
|
3277
|
+
<Modal.Title>Assign agency</Modal.Title>
|
|
3278
|
+
<Modal.Body>
|
|
3279
|
+
<Combobox.Root items={STATES}>
|
|
3280
|
+
<Combobox.Input placeholder="Search states" aria-label="Search states" />
|
|
3281
|
+
<Combobox.Content>
|
|
3282
|
+
<Combobox.Empty>No matches found</Combobox.Empty>
|
|
3283
|
+
<Combobox.List>
|
|
3284
|
+
{(state: string) => (
|
|
3285
|
+
<Combobox.Item key={state} value={state}>
|
|
3286
|
+
{state}
|
|
3287
|
+
</Combobox.Item>
|
|
3288
|
+
)}
|
|
3289
|
+
</Combobox.List>
|
|
3290
|
+
</Combobox.Content>
|
|
3291
|
+
</Combobox.Root>
|
|
3292
|
+
</Modal.Body>
|
|
3293
|
+
</Modal.Content>
|
|
3294
|
+
</Modal.Root>
|
|
3295
|
+
);</code></pre>
|
|
3296
|
+
</div>
|
|
3297
|
+
</div>
|
|
3298
|
+
|
|
3299
|
+
|
|
2814
3300
|
</div>
|
|
2815
3301
|
</article>
|
|
2816
3302
|
<article
|
|
@@ -2825,9 +3311,9 @@ import { CheckList } from '@agentero/design-system/check-list';
|
|
|
2825
3311
|
<div class="title">
|
|
2826
3312
|
<h2><span class="status-dot dot-ok"></span> Command.Root</h2>
|
|
2827
3313
|
<div class="badges">
|
|
2828
|
-
<label for="c-
|
|
3314
|
+
<label for="c-8-components-command-props" class="badge ok as-toggle">10 prop types</label>
|
|
2829
3315
|
|
|
2830
|
-
<label for="c-
|
|
3316
|
+
<label for="c-8-components-command-stories" class="badge ok as-toggle">6 stories</label>
|
|
2831
3317
|
|
|
2832
3318
|
|
|
2833
3319
|
</div>
|
|
@@ -2860,10 +3346,10 @@ import { Command } from '@agentero/design-system/command';
|
|
|
2860
3346
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
2861
3347
|
|
|
2862
3348
|
|
|
2863
|
-
<input id="c-
|
|
3349
|
+
<input id="c-8-components-command-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
2864
3350
|
|
|
2865
3351
|
|
|
2866
|
-
<input id="c-
|
|
3352
|
+
<input id="c-8-components-command-props" class="tg tg-props" type="checkbox" hidden />
|
|
2867
3353
|
|
|
2868
3354
|
<div class="panels">
|
|
2869
3355
|
|
|
@@ -3077,9 +3563,9 @@ list does not invite the pointer.</div>
|
|
|
3077
3563
|
<div class="title">
|
|
3078
3564
|
<h2><span class="status-dot dot-ok"></span> DataTable.Root</h2>
|
|
3079
3565
|
<div class="badges">
|
|
3080
|
-
<label for="c-
|
|
3566
|
+
<label for="c-9-components-datatable-props" class="badge ok as-toggle">88 prop types</label>
|
|
3081
3567
|
|
|
3082
|
-
<label for="c-
|
|
3568
|
+
<label for="c-9-components-datatable-stories" class="badge ok as-toggle">4 stories</label>
|
|
3083
3569
|
|
|
3084
3570
|
|
|
3085
3571
|
</div>
|
|
@@ -3122,10 +3608,10 @@ const columns = [
|
|
|
3122
3608
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
3123
3609
|
|
|
3124
3610
|
|
|
3125
|
-
<input id="c-
|
|
3611
|
+
<input id="c-9-components-datatable-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
3126
3612
|
|
|
3127
3613
|
|
|
3128
|
-
<input id="c-
|
|
3614
|
+
<input id="c-9-components-datatable-props" class="tg tg-props" type="checkbox" hidden />
|
|
3129
3615
|
|
|
3130
3616
|
<div class="panels">
|
|
3131
3617
|
|
|
@@ -3703,9 +4189,9 @@ in flight.</div>
|
|
|
3703
4189
|
<div class="title">
|
|
3704
4190
|
<h2><span class="status-dot dot-ok"></span> Divider</h2>
|
|
3705
4191
|
<div class="badges">
|
|
3706
|
-
<label for="c-
|
|
4192
|
+
<label for="c-10-components-divider-props" class="badge ok as-toggle">4 prop types</label>
|
|
3707
4193
|
|
|
3708
|
-
<label for="c-
|
|
4194
|
+
<label for="c-10-components-divider-stories" class="badge ok as-toggle">10 stories</label>
|
|
3709
4195
|
|
|
3710
4196
|
|
|
3711
4197
|
</div>
|
|
@@ -3728,10 +4214,10 @@ When omitted, Divider renders a single line.</span><span class="chip">example: &
|
|
|
3728
4214
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
3729
4215
|
|
|
3730
4216
|
|
|
3731
|
-
<input id="c-
|
|
4217
|
+
<input id="c-10-components-divider-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
3732
4218
|
|
|
3733
4219
|
|
|
3734
|
-
<input id="c-
|
|
4220
|
+
<input id="c-10-components-divider-props" class="tg tg-props" type="checkbox" hidden />
|
|
3735
4221
|
|
|
3736
4222
|
<div class="panels">
|
|
3737
4223
|
|
|
@@ -4034,9 +4520,9 @@ related controls or inline links without visual weight.</div>
|
|
|
4034
4520
|
<div class="title">
|
|
4035
4521
|
<h2><span class="status-dot dot-ok"></span> DropdownMenu.Root</h2>
|
|
4036
4522
|
<div class="badges">
|
|
4037
|
-
<label for="c-
|
|
4523
|
+
<label for="c-11-components-dropdownmenu-props" class="badge ok as-toggle">6 prop types</label>
|
|
4038
4524
|
|
|
4039
|
-
<label for="c-
|
|
4525
|
+
<label for="c-11-components-dropdownmenu-stories" class="badge ok as-toggle">7 stories</label>
|
|
4040
4526
|
|
|
4041
4527
|
|
|
4042
4528
|
</div>
|
|
@@ -4095,10 +4581,10 @@ import { DropdownMenu } from '@agentero/design-system/dropdown-menu';
|
|
|
4095
4581
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
4096
4582
|
|
|
4097
4583
|
|
|
4098
|
-
<input id="c-
|
|
4584
|
+
<input id="c-11-components-dropdownmenu-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
4099
4585
|
|
|
4100
4586
|
|
|
4101
|
-
<input id="c-
|
|
4587
|
+
<input id="c-11-components-dropdownmenu-props" class="tg tg-props" type="checkbox" hidden />
|
|
4102
4588
|
|
|
4103
4589
|
<div class="panels">
|
|
4104
4590
|
|
|
@@ -4501,9 +4987,9 @@ actions outright unless the user needs to see them and understand why.</div>
|
|
|
4501
4987
|
<div class="title">
|
|
4502
4988
|
<h2><span class="status-dot dot-ok"></span> Field.Root</h2>
|
|
4503
4989
|
<div class="badges">
|
|
4504
|
-
<label for="c-
|
|
4990
|
+
<label for="c-12-components-field-props" class="badge ok as-toggle">6 prop types</label>
|
|
4505
4991
|
|
|
4506
|
-
<label for="c-
|
|
4992
|
+
<label for="c-12-components-field-stories" class="badge ok as-toggle">16 stories</label>
|
|
4507
4993
|
|
|
4508
4994
|
|
|
4509
4995
|
</div>
|
|
@@ -4535,10 +5021,10 @@ absent when there is none.</div>
|
|
|
4535
5021
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
4536
5022
|
|
|
4537
5023
|
|
|
4538
|
-
<input id="c-
|
|
5024
|
+
<input id="c-12-components-field-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
4539
5025
|
|
|
4540
5026
|
|
|
4541
|
-
<input id="c-
|
|
5027
|
+
<input id="c-12-components-field-props" class="tg tg-props" type="checkbox" hidden />
|
|
4542
5028
|
|
|
4543
5029
|
<div class="panels">
|
|
4544
5030
|
|
|
@@ -4988,9 +5474,9 @@ form library. `InputContext` extends the same way with `value`, `onChange`,
|
|
|
4988
5474
|
<div class="title">
|
|
4989
5475
|
<h2><span class="status-dot dot-ok"></span> FieldText</h2>
|
|
4990
5476
|
<div class="badges">
|
|
4991
|
-
<label for="c-
|
|
5477
|
+
<label for="c-13-components-fieldtext-props" class="badge ok as-toggle">6 prop types</label>
|
|
4992
5478
|
|
|
4993
|
-
<label for="c-
|
|
5479
|
+
<label for="c-13-components-fieldtext-stories" class="badge ok as-toggle">7 stories</label>
|
|
4994
5480
|
|
|
4995
5481
|
|
|
4996
5482
|
</div>
|
|
@@ -5017,10 +5503,10 @@ and `name`, and `FieldContext` with the errors, as the last story shows.</div>
|
|
|
5017
5503
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
5018
5504
|
|
|
5019
5505
|
|
|
5020
|
-
<input id="c-
|
|
5506
|
+
<input id="c-13-components-fieldtext-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
5021
5507
|
|
|
5022
5508
|
|
|
5023
|
-
<input id="c-
|
|
5509
|
+
<input id="c-13-components-fieldtext-props" class="tg tg-props" type="checkbox" hidden />
|
|
5024
5510
|
|
|
5025
5511
|
<div class="panels">
|
|
5026
5512
|
|
|
@@ -5236,9 +5722,9 @@ The input's own `onChange` still runs, chained after the provider's.</di
|
|
|
5236
5722
|
<div class="title">
|
|
5237
5723
|
<h2><span class="status-dot dot-ok"></span> Form.Root</h2>
|
|
5238
5724
|
<div class="badges">
|
|
5239
|
-
<label for="c-
|
|
5725
|
+
<label for="c-14-components-form-props" class="badge ok as-toggle">3 prop types</label>
|
|
5240
5726
|
|
|
5241
|
-
<label for="c-
|
|
5727
|
+
<label for="c-14-components-form-stories" class="badge ok as-toggle">2 stories</label>
|
|
5242
5728
|
|
|
5243
5729
|
|
|
5244
5730
|
</div>
|
|
@@ -5267,10 +5753,10 @@ keep a single copy, since the provider and the fields share one context.</div>
|
|
|
5267
5753
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
5268
5754
|
|
|
5269
5755
|
|
|
5270
|
-
<input id="c-
|
|
5756
|
+
<input id="c-14-components-form-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
5271
5757
|
|
|
5272
5758
|
|
|
5273
|
-
<input id="c-
|
|
5759
|
+
<input id="c-14-components-form-props" class="tg tg-props" type="checkbox" hidden />
|
|
5274
5760
|
|
|
5275
5761
|
<div class="panels">
|
|
5276
5762
|
|
|
@@ -5365,9 +5851,9 @@ Validation is react-hook-form's alone.</div>
|
|
|
5365
5851
|
<div class="title">
|
|
5366
5852
|
<h2><span class="status-dot dot-ok"></span> FormText</h2>
|
|
5367
5853
|
<div class="badges">
|
|
5368
|
-
<label for="c-
|
|
5854
|
+
<label for="c-15-components-formtext-props" class="badge ok as-toggle">15 prop types</label>
|
|
5369
5855
|
|
|
5370
|
-
<label for="c-
|
|
5856
|
+
<label for="c-15-components-formtext-stories" class="badge ok as-toggle">9 stories</label>
|
|
5371
5857
|
|
|
5372
5858
|
|
|
5373
5859
|
</div>
|
|
@@ -5397,10 +5883,10 @@ with the `FieldText`, `Label`, `Input` and `Field.*` primitives directly.</div>
|
|
|
5397
5883
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
5398
5884
|
|
|
5399
5885
|
|
|
5400
|
-
<input id="c-
|
|
5886
|
+
<input id="c-15-components-formtext-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
5401
5887
|
|
|
5402
5888
|
|
|
5403
|
-
<input id="c-
|
|
5889
|
+
<input id="c-15-components-formtext-props" class="tg tg-props" type="checkbox" hidden />
|
|
5404
5890
|
|
|
5405
5891
|
<div class="panels">
|
|
5406
5892
|
|
|
@@ -5522,7 +6008,7 @@ tooltip?: ReactNode
|
|
|
5522
6008
|
/**
|
|
5523
6009
|
* Preferred side of the tooltip. Defaults to `'top'`.
|
|
5524
6010
|
*/
|
|
5525
|
-
tooltipSide?: "
|
|
6011
|
+
tooltipSide?: "top" | "bottom" | "left" | "right"</code></pre>
|
|
5526
6012
|
</div>
|
|
5527
6013
|
</div>
|
|
5528
6014
|
|
|
@@ -5665,9 +6151,9 @@ hand.</div>
|
|
|
5665
6151
|
<div class="title">
|
|
5666
6152
|
<h2><span class="status-dot dot-ok"></span> HoverCard.Root</h2>
|
|
5667
6153
|
<div class="badges">
|
|
5668
|
-
<label for="c-
|
|
6154
|
+
<label for="c-16-components-hovercard-props" class="badge ok as-toggle">6 prop types</label>
|
|
5669
6155
|
|
|
5670
|
-
<label for="c-
|
|
6156
|
+
<label for="c-16-components-hovercard-stories" class="badge ok as-toggle">7 stories</label>
|
|
5671
6157
|
|
|
5672
6158
|
|
|
5673
6159
|
</div>
|
|
@@ -5699,10 +6185,10 @@ import { HoverCard } from '@agentero/design-system/hover-card';
|
|
|
5699
6185
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
5700
6186
|
|
|
5701
6187
|
|
|
5702
|
-
<input id="c-
|
|
6188
|
+
<input id="c-16-components-hovercard-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
5703
6189
|
|
|
5704
6190
|
|
|
5705
|
-
<input id="c-
|
|
6191
|
+
<input id="c-16-components-hovercard-props" class="tg tg-props" type="checkbox" hidden />
|
|
5706
6192
|
|
|
5707
6193
|
<div class="panels">
|
|
5708
6194
|
|
|
@@ -5949,9 +6435,9 @@ trigger-dense UIs where an instant preview reads as more responsive.</div>
|
|
|
5949
6435
|
<div class="title">
|
|
5950
6436
|
<h2><span class="status-dot dot-ok"></span> Input</h2>
|
|
5951
6437
|
<div class="badges">
|
|
5952
|
-
<label for="c-
|
|
6438
|
+
<label for="c-17-components-input-props" class="badge ok as-toggle">7 prop types</label>
|
|
5953
6439
|
|
|
5954
|
-
<label for="c-
|
|
6440
|
+
<label for="c-17-components-input-stories" class="badge ok as-toggle">9 stories</label>
|
|
5955
6441
|
|
|
5956
6442
|
|
|
5957
6443
|
</div>
|
|
@@ -5974,10 +6460,10 @@ assistive technology announces.</div>
|
|
|
5974
6460
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
5975
6461
|
|
|
5976
6462
|
|
|
5977
|
-
<input id="c-
|
|
6463
|
+
<input id="c-17-components-input-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
5978
6464
|
|
|
5979
6465
|
|
|
5980
|
-
<input id="c-
|
|
6466
|
+
<input id="c-17-components-input-props" class="tg tg-props" type="checkbox" hidden />
|
|
5981
6467
|
|
|
5982
6468
|
<div class="panels">
|
|
5983
6469
|
|
|
@@ -6189,9 +6675,9 @@ they cannot change.</div>
|
|
|
6189
6675
|
<div class="title">
|
|
6190
6676
|
<h2><span class="status-dot dot-ok"></span> Label</h2>
|
|
6191
6677
|
<div class="badges">
|
|
6192
|
-
<label for="c-
|
|
6678
|
+
<label for="c-18-components-label-props" class="badge ok as-toggle">3 prop types</label>
|
|
6193
6679
|
|
|
6194
|
-
<label for="c-
|
|
6680
|
+
<label for="c-18-components-label-stories" class="badge ok as-toggle">5 stories</label>
|
|
6195
6681
|
|
|
6196
6682
|
|
|
6197
6683
|
</div>
|
|
@@ -6211,10 +6697,10 @@ still has to carry `required` / `aria-required`.</div>
|
|
|
6211
6697
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
6212
6698
|
|
|
6213
6699
|
|
|
6214
|
-
<input id="c-
|
|
6700
|
+
<input id="c-18-components-label-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
6215
6701
|
|
|
6216
6702
|
|
|
6217
|
-
<input id="c-
|
|
6703
|
+
<input id="c-18-components-label-props" class="tg tg-props" type="checkbox" hidden />
|
|
6218
6704
|
|
|
6219
6705
|
<div class="panels">
|
|
6220
6706
|
|
|
@@ -6334,9 +6820,9 @@ field's control with no `htmlFor`. An explicit `htmlFor` still wins.</div>
|
|
|
6334
6820
|
<div class="title">
|
|
6335
6821
|
<h2><span class="status-dot dot-ok"></span> Loading</h2>
|
|
6336
6822
|
<div class="badges">
|
|
6337
|
-
<label for="c-
|
|
6823
|
+
<label for="c-19-components-loading-props" class="badge ok as-toggle">1 prop type</label>
|
|
6338
6824
|
|
|
6339
|
-
<label for="c-
|
|
6825
|
+
<label for="c-19-components-loading-stories" class="badge ok as-toggle">7 stories</label>
|
|
6340
6826
|
|
|
6341
6827
|
|
|
6342
6828
|
</div>
|
|
@@ -6353,10 +6839,10 @@ parent font size via `em`-based size variants (`sm`, `md`, `lg`).</div>
|
|
|
6353
6839
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
6354
6840
|
|
|
6355
6841
|
|
|
6356
|
-
<input id="c-
|
|
6842
|
+
<input id="c-19-components-loading-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
6357
6843
|
|
|
6358
6844
|
|
|
6359
|
-
<input id="c-
|
|
6845
|
+
<input id="c-19-components-loading-props" class="tg tg-props" type="checkbox" hidden />
|
|
6360
6846
|
|
|
6361
6847
|
<div class="panels">
|
|
6362
6848
|
|
|
@@ -6507,9 +6993,9 @@ against the dark background.</div>
|
|
|
6507
6993
|
<div class="title">
|
|
6508
6994
|
<h2><span class="status-dot dot-ok"></span> Modal.Root</h2>
|
|
6509
6995
|
<div class="badges">
|
|
6510
|
-
<label for="c-
|
|
6996
|
+
<label for="c-20-components-modal-props" class="badge ok as-toggle">5 prop types</label>
|
|
6511
6997
|
|
|
6512
|
-
<label for="c-
|
|
6998
|
+
<label for="c-20-components-modal-stories" class="badge ok as-toggle">6 stories</label>
|
|
6513
6999
|
|
|
6514
7000
|
|
|
6515
7001
|
</div>
|
|
@@ -6555,10 +7041,10 @@ import { Modal } from '@agentero/design-system/modal';
|
|
|
6555
7041
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
6556
7042
|
|
|
6557
7043
|
|
|
6558
|
-
<input id="c-
|
|
7044
|
+
<input id="c-20-components-modal-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
6559
7045
|
|
|
6560
7046
|
|
|
6561
|
-
<input id="c-
|
|
7047
|
+
<input id="c-20-components-modal-props" class="tg tg-props" type="checkbox" hidden />
|
|
6562
7048
|
|
|
6563
7049
|
<div class="panels">
|
|
6564
7050
|
|
|
@@ -6755,9 +7241,9 @@ announced as an `alertdialog`. Only the footer actions close it.</div>
|
|
|
6755
7241
|
<div class="title">
|
|
6756
7242
|
<h2><span class="status-dot dot-ok"></span> Pagination</h2>
|
|
6757
7243
|
<div class="badges">
|
|
6758
|
-
<label for="c-
|
|
7244
|
+
<label for="c-21-components-pagination-props" class="badge ok as-toggle">5 prop types</label>
|
|
6759
7245
|
|
|
6760
|
-
<label for="c-
|
|
7246
|
+
<label for="c-21-components-pagination-stories" class="badge ok as-toggle">7 stories</label>
|
|
6761
7247
|
|
|
6762
7248
|
|
|
6763
7249
|
</div>
|
|
@@ -6787,10 +7273,10 @@ const [page, setPage] = useState(1);
|
|
|
6787
7273
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
6788
7274
|
|
|
6789
7275
|
|
|
6790
|
-
<input id="c-
|
|
7276
|
+
<input id="c-21-components-pagination-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
6791
7277
|
|
|
6792
7278
|
|
|
6793
|
-
<input id="c-
|
|
7279
|
+
<input id="c-21-components-pagination-props" class="tg tg-props" type="checkbox" hidden />
|
|
6794
7280
|
|
|
6795
7281
|
<div class="panels">
|
|
6796
7282
|
|
|
@@ -6945,9 +7431,9 @@ entries summary follow along.</div>
|
|
|
6945
7431
|
<div class="title">
|
|
6946
7432
|
<h2><span class="status-dot dot-ok"></span> Popover.Root</h2>
|
|
6947
7433
|
<div class="badges">
|
|
6948
|
-
<label for="c-
|
|
7434
|
+
<label for="c-22-components-popover-props" class="badge ok as-toggle">5 prop types</label>
|
|
6949
7435
|
|
|
6950
|
-
<label for="c-
|
|
7436
|
+
<label for="c-22-components-popover-stories" class="badge ok as-toggle">5 stories</label>
|
|
6951
7437
|
|
|
6952
7438
|
|
|
6953
7439
|
</div>
|
|
@@ -6976,10 +7462,10 @@ import { Popover } from '@agentero/design-system/popover';
|
|
|
6976
7462
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
6977
7463
|
|
|
6978
7464
|
|
|
6979
|
-
<input id="c-
|
|
7465
|
+
<input id="c-22-components-popover-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
6980
7466
|
|
|
6981
7467
|
|
|
6982
|
-
<input id="c-
|
|
7468
|
+
<input id="c-22-components-popover-props" class="tg tg-props" type="checkbox" hidden />
|
|
6983
7469
|
|
|
6984
7470
|
<div class="panels">
|
|
6985
7471
|
|
|
@@ -7178,9 +7664,9 @@ focus returning to its trigger once the modal closes.</div>
|
|
|
7178
7664
|
<div class="title">
|
|
7179
7665
|
<h2><span class="status-dot dot-ok"></span> Progress</h2>
|
|
7180
7666
|
<div class="badges">
|
|
7181
|
-
<label for="c-
|
|
7667
|
+
<label for="c-23-components-progress-props" class="badge ok as-toggle">4 prop types</label>
|
|
7182
7668
|
|
|
7183
|
-
<label for="c-
|
|
7669
|
+
<label for="c-23-components-progress-stories" class="badge ok as-toggle">4 stories</label>
|
|
7184
7670
|
|
|
7185
7671
|
|
|
7186
7672
|
</div>
|
|
@@ -7199,10 +7685,10 @@ with `currentColor`, so recolor it with a plain text class — e.g.
|
|
|
7199
7685
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
7200
7686
|
|
|
7201
7687
|
|
|
7202
|
-
<input id="c-
|
|
7688
|
+
<input id="c-23-components-progress-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
7203
7689
|
|
|
7204
7690
|
|
|
7205
|
-
<input id="c-
|
|
7691
|
+
<input id="c-23-components-progress-props" class="tg tg-props" type="checkbox" hidden />
|
|
7206
7692
|
|
|
7207
7693
|
<div class="panels">
|
|
7208
7694
|
|
|
@@ -7321,7 +7807,7 @@ percentage: number</code></pre>
|
|
|
7321
7807
|
<div class="badges">
|
|
7322
7808
|
|
|
7323
7809
|
|
|
7324
|
-
<label for="c-
|
|
7810
|
+
<label for="c-24-components-skeleton-stories" class="badge ok as-toggle">4 stories</label>
|
|
7325
7811
|
|
|
7326
7812
|
|
|
7327
7813
|
</div>
|
|
@@ -7338,7 +7824,7 @@ shape it with Tailwind classes to mirror the content it stands in for.</div>
|
|
|
7338
7824
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
7339
7825
|
|
|
7340
7826
|
|
|
7341
|
-
<input id="c-
|
|
7827
|
+
<input id="c-24-components-skeleton-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
7342
7828
|
|
|
7343
7829
|
|
|
7344
7830
|
|
|
@@ -7434,9 +7920,9 @@ shape it with Tailwind classes to mirror the content it stands in for.</div>
|
|
|
7434
7920
|
<div class="title">
|
|
7435
7921
|
<h2><span class="status-dot dot-ok"></span> Switch</h2>
|
|
7436
7922
|
<div class="badges">
|
|
7437
|
-
<label for="c-
|
|
7923
|
+
<label for="c-25-components-switch-props" class="badge ok as-toggle">8 prop types</label>
|
|
7438
7924
|
|
|
7439
|
-
<label for="c-
|
|
7925
|
+
<label for="c-25-components-switch-stories" class="badge ok as-toggle">7 stories</label>
|
|
7440
7926
|
|
|
7441
7927
|
|
|
7442
7928
|
</div>
|
|
@@ -7452,10 +7938,10 @@ a Checkbox for a single boolean that applies instantly, and pair it with a
|
|
|
7452
7938
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
7453
7939
|
|
|
7454
7940
|
|
|
7455
|
-
<input id="c-
|
|
7941
|
+
<input id="c-25-components-switch-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
7456
7942
|
|
|
7457
7943
|
|
|
7458
|
-
<input id="c-
|
|
7944
|
+
<input id="c-25-components-switch-props" class="tg tg-props" type="checkbox" hidden />
|
|
7459
7945
|
|
|
7460
7946
|
<div class="panels">
|
|
7461
7947
|
|
|
@@ -7636,9 +8122,9 @@ size?: "sm" | "md"</code></pre>
|
|
|
7636
8122
|
<div class="title">
|
|
7637
8123
|
<h2><span class="status-dot dot-ok"></span> Table.Root</h2>
|
|
7638
8124
|
<div class="badges">
|
|
7639
|
-
<label for="c-
|
|
8125
|
+
<label for="c-26-components-table-props" class="badge ok as-toggle">6 prop types</label>
|
|
7640
8126
|
|
|
7641
|
-
<label for="c-
|
|
8127
|
+
<label for="c-26-components-table-stories" class="badge ok as-toggle">9 stories</label>
|
|
7642
8128
|
|
|
7643
8129
|
|
|
7644
8130
|
</div>
|
|
@@ -7669,10 +8155,10 @@ import { Table } from '@agentero/design-system/table';
|
|
|
7669
8155
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
7670
8156
|
|
|
7671
8157
|
|
|
7672
|
-
<input id="c-
|
|
8158
|
+
<input id="c-26-components-table-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
7673
8159
|
|
|
7674
8160
|
|
|
7675
|
-
<input id="c-
|
|
8161
|
+
<input id="c-26-components-table-props" class="tg tg-props" type="checkbox" hidden />
|
|
7676
8162
|
|
|
7677
8163
|
<div class="panels">
|
|
7678
8164
|
|
|
@@ -7867,9 +8353,9 @@ import { Fragment } from "react";</code></pre>
|
|
|
7867
8353
|
<div class="title">
|
|
7868
8354
|
<h2><span class="status-dot dot-ok"></span> Tabs.Root</h2>
|
|
7869
8355
|
<div class="badges">
|
|
7870
|
-
<label for="c-
|
|
8356
|
+
<label for="c-27-components-tabs-props" class="badge ok as-toggle">9 prop types</label>
|
|
7871
8357
|
|
|
7872
|
-
<label for="c-
|
|
8358
|
+
<label for="c-27-components-tabs-stories" class="badge ok as-toggle">8 stories</label>
|
|
7873
8359
|
|
|
7874
8360
|
|
|
7875
8361
|
</div>
|
|
@@ -7900,10 +8386,10 @@ import { Tabs } from '@agentero/design-system/tabs';
|
|
|
7900
8386
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
7901
8387
|
|
|
7902
8388
|
|
|
7903
|
-
<input id="c-
|
|
8389
|
+
<input id="c-27-components-tabs-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
7904
8390
|
|
|
7905
8391
|
|
|
7906
|
-
<input id="c-
|
|
8392
|
+
<input id="c-27-components-tabs-props" class="tg tg-props" type="checkbox" hidden />
|
|
7907
8393
|
|
|
7908
8394
|
<div class="panels">
|
|
7909
8395
|
|
|
@@ -8124,9 +8610,9 @@ tablist role is announced.</div>
|
|
|
8124
8610
|
<div class="title">
|
|
8125
8611
|
<h2><span class="status-dot dot-ok"></span> Tag</h2>
|
|
8126
8612
|
<div class="badges">
|
|
8127
|
-
<label for="c-
|
|
8613
|
+
<label for="c-28-components-tag-props" class="badge ok as-toggle">8 prop types</label>
|
|
8128
8614
|
|
|
8129
|
-
<label for="c-
|
|
8615
|
+
<label for="c-28-components-tag-stories" class="badge ok as-toggle">12 stories</label>
|
|
8130
8616
|
|
|
8131
8617
|
|
|
8132
8618
|
</div>
|
|
@@ -8145,10 +8631,10 @@ it an interactive link or button, which adds the pointer cursor and hover fill.<
|
|
|
8145
8631
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
8146
8632
|
|
|
8147
8633
|
|
|
8148
|
-
<input id="c-
|
|
8634
|
+
<input id="c-28-components-tag-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
8149
8635
|
|
|
8150
8636
|
|
|
8151
|
-
<input id="c-
|
|
8637
|
+
<input id="c-28-components-tag-props" class="tg tg-props" type="checkbox" hidden />
|
|
8152
8638
|
|
|
8153
8639
|
<div class="panels">
|
|
8154
8640
|
|
|
@@ -8573,9 +9059,9 @@ leading + trailing icons, and icon-only.</div>
|
|
|
8573
9059
|
<div class="title">
|
|
8574
9060
|
<h2><span class="status-dot dot-ok"></span> TextArea</h2>
|
|
8575
9061
|
<div class="badges">
|
|
8576
|
-
<label for="c-
|
|
9062
|
+
<label for="c-29-components-textarea-props" class="badge ok as-toggle">8 prop types</label>
|
|
8577
9063
|
|
|
8578
|
-
<label for="c-
|
|
9064
|
+
<label for="c-29-components-textarea-stories" class="badge ok as-toggle">6 stories</label>
|
|
8579
9065
|
|
|
8580
9066
|
|
|
8581
9067
|
</div>
|
|
@@ -8592,10 +9078,10 @@ states. It wires nothing on its own: `id`, `aria-invalid` and
|
|
|
8592
9078
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
8593
9079
|
|
|
8594
9080
|
|
|
8595
|
-
<input id="c-
|
|
9081
|
+
<input id="c-29-components-textarea-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
8596
9082
|
|
|
8597
9083
|
|
|
8598
|
-
<input id="c-
|
|
9084
|
+
<input id="c-29-components-textarea-props" class="tg tg-props" type="checkbox" hidden />
|
|
8599
9085
|
|
|
8600
9086
|
<div class="panels">
|
|
8601
9087
|
|
|
@@ -8764,9 +9250,9 @@ size and the minimum height shows three rows.</div>
|
|
|
8764
9250
|
<div class="title">
|
|
8765
9251
|
<h2><span class="status-dot dot-ok"></span> Toast</h2>
|
|
8766
9252
|
<div class="badges">
|
|
8767
|
-
<label for="c-
|
|
9253
|
+
<label for="c-30-components-toast-props" class="badge ok as-toggle">11 prop types</label>
|
|
8768
9254
|
|
|
8769
|
-
<label for="c-
|
|
9255
|
+
<label for="c-30-components-toast-stories" class="badge ok as-toggle">11 stories</label>
|
|
8770
9256
|
|
|
8771
9257
|
|
|
8772
9258
|
</div>
|
|
@@ -8785,10 +9271,10 @@ common feedback patterns.</div>
|
|
|
8785
9271
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
8786
9272
|
|
|
8787
9273
|
|
|
8788
|
-
<input id="c-
|
|
9274
|
+
<input id="c-30-components-toast-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
8789
9275
|
|
|
8790
9276
|
|
|
8791
|
-
<input id="c-
|
|
9277
|
+
<input id="c-30-components-toast-props" class="tg tg-props" type="checkbox" hidden />
|
|
8792
9278
|
|
|
8793
9279
|
<div class="panels">
|
|
8794
9280
|
|
|
@@ -9217,9 +9703,9 @@ action (e.g., a sync icon for a sync-in-progress toast).</div>
|
|
|
9217
9703
|
<div class="title">
|
|
9218
9704
|
<h2><span class="status-dot dot-ok"></span> Tooltip</h2>
|
|
9219
9705
|
<div class="badges">
|
|
9220
|
-
<label for="c-
|
|
9706
|
+
<label for="c-31-components-tooltip-props" class="badge ok as-toggle">12 prop types</label>
|
|
9221
9707
|
|
|
9222
|
-
<label for="c-
|
|
9708
|
+
<label for="c-31-components-tooltip-stories" class="badge ok as-toggle">5 stories</label>
|
|
9223
9709
|
|
|
9224
9710
|
|
|
9225
9711
|
</div>
|
|
@@ -9238,10 +9724,10 @@ on hover or focus.</div>
|
|
|
9238
9724
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
9239
9725
|
|
|
9240
9726
|
|
|
9241
|
-
<input id="c-
|
|
9727
|
+
<input id="c-31-components-tooltip-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
9242
9728
|
|
|
9243
9729
|
|
|
9244
|
-
<input id="c-
|
|
9730
|
+
<input id="c-31-components-tooltip-props" class="tg tg-props" type="checkbox" hidden />
|
|
9245
9731
|
|
|
9246
9732
|
<div class="panels">
|
|
9247
9733
|
|
|
@@ -9299,7 +9785,7 @@ open?: boolean
|
|
|
9299
9785
|
/**
|
|
9300
9786
|
* Preferred side of the trigger; flips on collision. Defaults to `'top'`.
|
|
9301
9787
|
*/
|
|
9302
|
-
side?: "
|
|
9788
|
+
side?: "top" | "bottom" | "left" | "right" = 'top'
|
|
9303
9789
|
|
|
9304
9790
|
/**
|
|
9305
9791
|
* Distance in pixels between the tooltip and its trigger. Defaults to `4`.
|
|
@@ -9413,9 +9899,9 @@ sideOffset?: number = 4</code></pre>
|
|
|
9413
9899
|
<div class="title">
|
|
9414
9900
|
<h2><span class="status-dot dot-ok"></span> ValidationList</h2>
|
|
9415
9901
|
<div class="badges">
|
|
9416
|
-
<label for="c-
|
|
9902
|
+
<label for="c-32-components-validationlist-props" class="badge ok as-toggle">2 prop types</label>
|
|
9417
9903
|
|
|
9418
|
-
<label for="c-
|
|
9904
|
+
<label for="c-32-components-validationlist-stories" class="badge ok as-toggle">4 stories</label>
|
|
9419
9905
|
|
|
9420
9906
|
|
|
9421
9907
|
</div>
|
|
@@ -9436,10 +9922,10 @@ your form validation; it does not own the input or block submission.</div>
|
|
|
9436
9922
|
<!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
|
|
9437
9923
|
|
|
9438
9924
|
|
|
9439
|
-
<input id="c-
|
|
9925
|
+
<input id="c-32-components-validationlist-stories" class="tg tg-stories" type="checkbox" hidden />
|
|
9440
9926
|
|
|
9441
9927
|
|
|
9442
|
-
<input id="c-
|
|
9928
|
+
<input id="c-32-components-validationlist-props" class="tg tg-props" type="checkbox" hidden />
|
|
9443
9929
|
|
|
9444
9930
|
<div class="panels">
|
|
9445
9931
|
|