@mtdt/observeops-ds-spec 0.1.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/AGENTS.md +102 -0
- package/README.md +73 -0
- package/components/index.json +1270 -0
- package/components/recipes/README.md +41 -0
- package/components/recipes/recipes.json +922 -0
- package/components/registry/README.md +44 -0
- package/components/registry/_schema.json +47 -0
- package/components/registry/button.json +368 -0
- package/components/registry/checkbox.json +177 -0
- package/components/registry/data-viz-tooltips.json +409 -0
- package/components/registry/date-time-pickers.json +296 -0
- package/components/registry/drawer.json +222 -0
- package/components/registry/dropdown-picker.json +388 -0
- package/components/registry/filters.json +155 -0
- package/components/registry/form-item.json +281 -0
- package/components/registry/input.json +277 -0
- package/components/registry/link.json +186 -0
- package/components/registry/loose-tags.json +196 -0
- package/components/registry/menu.json +145 -0
- package/components/registry/modal.json +265 -0
- package/components/registry/navigation.json +425 -0
- package/components/registry/popover.json +216 -0
- package/components/registry/radio.json +238 -0
- package/components/registry/scheduler.json +188 -0
- package/components/registry/select.json +247 -0
- package/components/registry/severity.json +179 -0
- package/components/registry/switch.json +177 -0
- package/components/registry/table.json +275 -0
- package/components/registry/tabs.json +264 -0
- package/components/registry/tag.json +345 -0
- package/components/registry/tags-list.json +115 -0
- package/components/registry/toolbars.json +240 -0
- package/components/registry/tooltip.json +175 -0
- package/components/specs/README.md +72 -0
- package/components/specs/button.md +230 -0
- package/components/specs/checkbox.md +162 -0
- package/components/specs/data-viz-tooltips.md +93 -0
- package/components/specs/date-time-pickers.md +161 -0
- package/components/specs/drawer.md +162 -0
- package/components/specs/dropdown-picker.md +161 -0
- package/components/specs/filters.md +118 -0
- package/components/specs/form-item.md +130 -0
- package/components/specs/input.md +130 -0
- package/components/specs/link.md +131 -0
- package/components/specs/loose-tags.md +139 -0
- package/components/specs/menu.md +88 -0
- package/components/specs/modal.md +176 -0
- package/components/specs/navigation.md +181 -0
- package/components/specs/popover.md +118 -0
- package/components/specs/radio.md +144 -0
- package/components/specs/scheduler.md +133 -0
- package/components/specs/select.md +118 -0
- package/components/specs/switch.md +124 -0
- package/components/specs/table.md +115 -0
- package/components/specs/tabs.md +136 -0
- package/components/specs/tag.md +196 -0
- package/components/specs/tags-list.md +105 -0
- package/components/specs/toolbars.md +108 -0
- package/components/specs/tooltip.md +112 -0
- package/foundation/README.md +39 -0
- package/foundation/layout-shells.md +67 -0
- package/foundation/page-templates.md +69 -0
- package/foundation/panel-behaviours.md +61 -0
- package/foundation/screen-regions.md +62 -0
- package/index.js +75 -0
- package/layout/grid.json +34 -0
- package/layout/layouts.json +310 -0
- package/llms.txt +60 -0
- package/package.json +42 -0
- package/spec.manifest.json +407 -0
- package/tokens/README.md +125 -0
- package/tokens/component.json +34 -0
- package/tokens/kit-accents.json +14 -0
- package/tokens/primitive.json +130 -0
- package/tokens/purpose-map.json +67 -0
- package/tokens/semantic.dark.json +90 -0
- package/tokens/semantic.light.json +90 -0
- package/tokens/structural.json +35 -0
- package/tokens/variables.json +2018 -0
|
@@ -0,0 +1,1270 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$description": "Machine index of the ObserveOps design system — load FIRST.",
|
|
3
|
+
"$contract": "../AGENTS.md — the AI Operating Contract. READ BEFORE BUILDING: use only catalogued components, resolve every colour to a token, compose pages from recipes/layout, and STOP-and-ASK before using anything not in this DS. This index is step 1 of that contract.",
|
|
4
|
+
"$howToUse": [
|
|
5
|
+
"1. Find by need (family/category/selectHint/summary or scan variants).",
|
|
6
|
+
"2. Open `registry` (machine spec) + `spec` (prose).",
|
|
7
|
+
"3. Resolve --var in tokensUsed via tokens/variables.json (LESS @vars: tokens/structural.json).",
|
|
8
|
+
"4. `storybook` = live demo; `selectHint` = one-line use-when.",
|
|
9
|
+
"5. To lay out a PAGE (not just a component): load `layout.spec` (layout/layouts.json) — shells (4 route + 2 content), screenRegions, contentLayouts (6), panels (10), pageTemplates (7, each → a recipe). Region→component blueprints are in `recipes` (recipes.json). `layout.grid` = the 12-col grid. `layout.coverage` (foundation/) = which product pages use each.",
|
|
10
|
+
"6. Styling a NEW element that isn't a catalogued component? DON'T hardcode colours — pick the token by PURPOSE in `tokens.purposeMap` (tokens/purpose-map.json): surface/text/border/brand/status/severity/shadow → token (+ light/dark), plus the structural spacing/sizing/radius/type scale."
|
|
11
|
+
],
|
|
12
|
+
"tokens": {
|
|
13
|
+
"crosswalk": "tokens/variables.json",
|
|
14
|
+
"structural": "tokens/structural.json",
|
|
15
|
+
"kitAccents": "tokens/kit-accents.json",
|
|
16
|
+
"purposeMap": "tokens/purpose-map.json",
|
|
17
|
+
"drift": "--primary = navy #111c2c, NOT cyan",
|
|
18
|
+
"$use": "RESOLVE + EMIT runtime CSS vars: component tokensUsed -> tokens/variables.json (336 --vars, light/dark) + structural.json (LESS @vars: spacing/sizing/type) + kit-accents.json (@primary-color). This is the LIVE product token layer — use it.",
|
|
19
|
+
"$future": "tokens/{primitive,semantic.light,semantic.dark,component}.json define a FUTURE portable DTCG system (mds-* names). It is NOT yet wired to components or the running product — do NOT emit mds-* tokens for live output. Use --vars (variables.json) today."
|
|
20
|
+
},
|
|
21
|
+
"schema": "components/registry/_schema.json",
|
|
22
|
+
"recipes": "components/recipes/recipes.json",
|
|
23
|
+
"layout": {
|
|
24
|
+
"grid": "layout/grid.json",
|
|
25
|
+
"spec": "layout/layouts.json",
|
|
26
|
+
"coverage": "foundation/",
|
|
27
|
+
"$note": "The structural layer — the 12-col grid (MRow/MCol) + app shell, layout shells, screen regions & panel behaviours (layout/layouts.json; Storybook: Foundations/Layout/*). foundation/*.md = a page-by-page PRODUCT coverage sweep per element (which pages/flows use each variant + findings + best practices)."
|
|
28
|
+
},
|
|
29
|
+
"counts": {
|
|
30
|
+
"components": 26,
|
|
31
|
+
"families": 15,
|
|
32
|
+
"coverage": {
|
|
33
|
+
"props": 19,
|
|
34
|
+
"apis": 8,
|
|
35
|
+
"states": 26,
|
|
36
|
+
"sizes": 8,
|
|
37
|
+
"variants": 23,
|
|
38
|
+
"a11y": 26
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"families": {
|
|
42
|
+
"Button": [
|
|
43
|
+
"button"
|
|
44
|
+
],
|
|
45
|
+
"Date & Time Pickers": [
|
|
46
|
+
"date-time-pickers"
|
|
47
|
+
],
|
|
48
|
+
"Filters": [
|
|
49
|
+
"filters"
|
|
50
|
+
],
|
|
51
|
+
"Form Controls": [
|
|
52
|
+
"dropdown-picker",
|
|
53
|
+
"form-item",
|
|
54
|
+
"input",
|
|
55
|
+
"select"
|
|
56
|
+
],
|
|
57
|
+
"Link": [
|
|
58
|
+
"link"
|
|
59
|
+
],
|
|
60
|
+
"Menu": [
|
|
61
|
+
"menu"
|
|
62
|
+
],
|
|
63
|
+
"Navigation": [
|
|
64
|
+
"navigation"
|
|
65
|
+
],
|
|
66
|
+
"Overlay": [
|
|
67
|
+
"drawer",
|
|
68
|
+
"modal"
|
|
69
|
+
],
|
|
70
|
+
"Popover & Tooltip": [
|
|
71
|
+
"data-viz-tooltips",
|
|
72
|
+
"popover",
|
|
73
|
+
"tooltip"
|
|
74
|
+
],
|
|
75
|
+
"Scheduler": [
|
|
76
|
+
"scheduler"
|
|
77
|
+
],
|
|
78
|
+
"Selection Controls": [
|
|
79
|
+
"checkbox",
|
|
80
|
+
"radio",
|
|
81
|
+
"switch"
|
|
82
|
+
],
|
|
83
|
+
"Table": [
|
|
84
|
+
"table"
|
|
85
|
+
],
|
|
86
|
+
"Tabs": [
|
|
87
|
+
"tabs"
|
|
88
|
+
],
|
|
89
|
+
"Tag": [
|
|
90
|
+
"loose-tags",
|
|
91
|
+
"severity",
|
|
92
|
+
"tag",
|
|
93
|
+
"tags-list"
|
|
94
|
+
],
|
|
95
|
+
"Toolbars": [
|
|
96
|
+
"toolbars"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
"components": [
|
|
100
|
+
{
|
|
101
|
+
"id": "button",
|
|
102
|
+
"display": "Button",
|
|
103
|
+
"tier": "atom",
|
|
104
|
+
"family": "Button",
|
|
105
|
+
"category": null,
|
|
106
|
+
"status": "core",
|
|
107
|
+
"summary": "Primary action control. Triggers an operation or navigation.",
|
|
108
|
+
"selectHint": "Navigates (route/URL/anchor)? -> link (FlotoLink), not a button.",
|
|
109
|
+
"variants": [
|
|
110
|
+
"primary",
|
|
111
|
+
"primary-alt",
|
|
112
|
+
"default",
|
|
113
|
+
"neutral-lighter",
|
|
114
|
+
"neutral-lightest",
|
|
115
|
+
"transparent",
|
|
116
|
+
"error",
|
|
117
|
+
"success",
|
|
118
|
+
"danger",
|
|
119
|
+
"icon-circle",
|
|
120
|
+
"squared-button",
|
|
121
|
+
"shape=circle",
|
|
122
|
+
"class=squared-button",
|
|
123
|
+
"contextual"
|
|
124
|
+
],
|
|
125
|
+
"registry": "components/registry/button.json",
|
|
126
|
+
"spec": "components/specs/button.md",
|
|
127
|
+
"storybook": "Atoms/Button",
|
|
128
|
+
"related": [
|
|
129
|
+
"MConfirmBtn",
|
|
130
|
+
"MDropdown",
|
|
131
|
+
"FlotoGridActions",
|
|
132
|
+
"FlotoLink (link button, 67x)",
|
|
133
|
+
"MRadioGroup as-button (segmented control, 255x)"
|
|
134
|
+
],
|
|
135
|
+
"knownIssueCount": 7,
|
|
136
|
+
"tokenCount": 4,
|
|
137
|
+
"has": {
|
|
138
|
+
"props": true,
|
|
139
|
+
"states": true,
|
|
140
|
+
"sizes": true,
|
|
141
|
+
"variants": true,
|
|
142
|
+
"decisionFlow": true,
|
|
143
|
+
"do": true,
|
|
144
|
+
"dont": true,
|
|
145
|
+
"tokensUsed": true,
|
|
146
|
+
"apis": false,
|
|
147
|
+
"a11y": true
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"id": "checkbox",
|
|
152
|
+
"display": "Checkbox",
|
|
153
|
+
"tier": "atom",
|
|
154
|
+
"family": "Selection Controls",
|
|
155
|
+
"category": null,
|
|
156
|
+
"status": "core",
|
|
157
|
+
"summary": "Single boolean toggle, usually with a label. Functional, fully-controlled.",
|
|
158
|
+
"selectHint": "Mutually-exclusive (pick one)? -> MRadio.",
|
|
159
|
+
"variants": [],
|
|
160
|
+
"registry": "components/registry/checkbox.json",
|
|
161
|
+
"spec": "components/specs/checkbox.md",
|
|
162
|
+
"storybook": "Atoms/Checkbox",
|
|
163
|
+
"related": [
|
|
164
|
+
"MRadio",
|
|
165
|
+
"MSwitch",
|
|
166
|
+
"MCheckboxGroup (unused)"
|
|
167
|
+
],
|
|
168
|
+
"knownIssueCount": 6,
|
|
169
|
+
"tokenCount": 4,
|
|
170
|
+
"has": {
|
|
171
|
+
"props": true,
|
|
172
|
+
"states": true,
|
|
173
|
+
"sizes": true,
|
|
174
|
+
"variants": false,
|
|
175
|
+
"decisionFlow": true,
|
|
176
|
+
"do": true,
|
|
177
|
+
"dont": true,
|
|
178
|
+
"tokensUsed": true,
|
|
179
|
+
"apis": false,
|
|
180
|
+
"a11y": true
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"id": "data-viz-tooltips",
|
|
185
|
+
"display": "Data-Viz Tooltips",
|
|
186
|
+
"tier": "molecule",
|
|
187
|
+
"family": "Popover & Tooltip",
|
|
188
|
+
"category": null,
|
|
189
|
+
"status": "stable",
|
|
190
|
+
"summary": "The product's chart & widget hover tooltips — a distinct family from MTooltip, owned by the chart layer (Highcharts TooltipBuilder, graph canvases, widget Vue components), not DS components. ~28 reference reproductions cover every mechanism.",
|
|
191
|
+
"selectHint": "Hover detail on a CHART/graph/canvas mark? -> data-viz tooltip (owned by the chart layer, not MTooltip).",
|
|
192
|
+
"variants": [
|
|
193
|
+
"bar-series",
|
|
194
|
+
"donut-pie",
|
|
195
|
+
"bubble",
|
|
196
|
+
"map-geo",
|
|
197
|
+
"radar",
|
|
198
|
+
"timeline-xrange",
|
|
199
|
+
"gauge",
|
|
200
|
+
"sankey",
|
|
201
|
+
"treemap",
|
|
202
|
+
"scatter",
|
|
203
|
+
"anomaly-band",
|
|
204
|
+
"rum-waterfall",
|
|
205
|
+
"geo-marker",
|
|
206
|
+
"log-pattern",
|
|
207
|
+
"sparkline",
|
|
208
|
+
"heatmap",
|
|
209
|
+
"availability-segment",
|
|
210
|
+
"availability-bar",
|
|
211
|
+
"live-graph-node",
|
|
212
|
+
"live-graph-edge",
|
|
213
|
+
"apm-service-node",
|
|
214
|
+
"sdn-tunnel-edge",
|
|
215
|
+
"cisco-aci-endpoint",
|
|
216
|
+
"cisco-aci-link",
|
|
217
|
+
"network-interface-edge",
|
|
218
|
+
"netroute-node",
|
|
219
|
+
"netroute-edge",
|
|
220
|
+
"flame-graph-span",
|
|
221
|
+
"HighchartsTooltipBuilder",
|
|
222
|
+
"VueWidget",
|
|
223
|
+
"GraphCanvas",
|
|
224
|
+
"FlameGraph",
|
|
225
|
+
"Bar / series",
|
|
226
|
+
"Donut / pie",
|
|
227
|
+
"Bubble",
|
|
228
|
+
"Map / geo",
|
|
229
|
+
"Radar",
|
|
230
|
+
"Timeline / x-range",
|
|
231
|
+
"Gauge",
|
|
232
|
+
"Sankey",
|
|
233
|
+
"Treemap",
|
|
234
|
+
"Scatter",
|
|
235
|
+
"Anomaly / forecast band",
|
|
236
|
+
"RUM resource waterfall",
|
|
237
|
+
"Geo map marker",
|
|
238
|
+
"Log pattern distribution",
|
|
239
|
+
"Sparkline",
|
|
240
|
+
"Heatmap",
|
|
241
|
+
"Alert / availability segment",
|
|
242
|
+
"Availability bar segment",
|
|
243
|
+
"Live graph node",
|
|
244
|
+
"Live graph edge",
|
|
245
|
+
"APM service-map node",
|
|
246
|
+
"SDN tunnel edge",
|
|
247
|
+
"Cisco ACI endpoint",
|
|
248
|
+
"Cisco ACI fabric link",
|
|
249
|
+
"Network interface edge",
|
|
250
|
+
"Netroute hop node",
|
|
251
|
+
"Netroute edge",
|
|
252
|
+
"Flame graph span"
|
|
253
|
+
],
|
|
254
|
+
"registry": "components/registry/data-viz-tooltips.json",
|
|
255
|
+
"spec": "components/specs/data-viz-tooltips.md",
|
|
256
|
+
"storybook": "Molecules/Data-Viz Tooltips",
|
|
257
|
+
"related": [
|
|
258
|
+
"tooltip",
|
|
259
|
+
"table"
|
|
260
|
+
],
|
|
261
|
+
"knownIssueCount": 2,
|
|
262
|
+
"tokenCount": 11,
|
|
263
|
+
"has": {
|
|
264
|
+
"props": false,
|
|
265
|
+
"states": true,
|
|
266
|
+
"sizes": false,
|
|
267
|
+
"variants": true,
|
|
268
|
+
"decisionFlow": true,
|
|
269
|
+
"do": true,
|
|
270
|
+
"dont": true,
|
|
271
|
+
"tokensUsed": true,
|
|
272
|
+
"apis": false,
|
|
273
|
+
"a11y": true
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"id": "date-time-pickers",
|
|
278
|
+
"display": "Date & Time Pickers",
|
|
279
|
+
"tier": "molecule",
|
|
280
|
+
"family": "Date & Time Pickers",
|
|
281
|
+
"category": null,
|
|
282
|
+
"status": "stable",
|
|
283
|
+
"summary": "The product's date/time selection family. The hero is TimeRangePicker (42×) — the observability time-range control (relative presets + absolute custom range). MDatePicker (10×, wraps a-date-picker) is the form date-time field, in practice ALWAYS used with show-time. MTimePicker wraps a-time-picker (12-hour) but is rarely used standalone. DateTimePopover is a lighter custom-range-only popover.",
|
|
284
|
+
"selectHint": "Selecting a TIME WINDOW for charts/dashboards/logs (relative or absolute)? -> TimeRangePicker (the 42× hero).",
|
|
285
|
+
"variants": [
|
|
286
|
+
"TimeRangePicker",
|
|
287
|
+
"MDatePicker",
|
|
288
|
+
"MTimePicker",
|
|
289
|
+
"TimePicker (custom)",
|
|
290
|
+
"TimeRangeSlider",
|
|
291
|
+
"DateTimePopover",
|
|
292
|
+
"presets-only",
|
|
293
|
+
"excluded-options"
|
|
294
|
+
],
|
|
295
|
+
"registry": "components/registry/date-time-pickers.json",
|
|
296
|
+
"spec": "components/specs/date-time-pickers.md",
|
|
297
|
+
"storybook": "Molecules/Date & Time Pickers",
|
|
298
|
+
"related": [
|
|
299
|
+
"dropdown-picker",
|
|
300
|
+
"form-item",
|
|
301
|
+
"popover"
|
|
302
|
+
],
|
|
303
|
+
"knownIssueCount": 2,
|
|
304
|
+
"tokenCount": 13,
|
|
305
|
+
"has": {
|
|
306
|
+
"props": false,
|
|
307
|
+
"states": true,
|
|
308
|
+
"sizes": false,
|
|
309
|
+
"variants": true,
|
|
310
|
+
"decisionFlow": true,
|
|
311
|
+
"do": true,
|
|
312
|
+
"dont": true,
|
|
313
|
+
"tokensUsed": true,
|
|
314
|
+
"apis": true,
|
|
315
|
+
"a11y": true
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"id": "drawer",
|
|
320
|
+
"display": "Drawer",
|
|
321
|
+
"tier": "organism",
|
|
322
|
+
"family": "Overlay",
|
|
323
|
+
"category": "overlay",
|
|
324
|
+
"status": "core",
|
|
325
|
+
"summary": "Slide-in side panel (from the right) for detail views, edit forms, and record-contextual content. The product's MOST-used overlay (FlotoDrawer 99x + FlotoDrawerForm 59x = 158x). Open via open prop or trigger slot.",
|
|
326
|
+
"selectHint": "Short yes/no or destructive confirmation? -> FlotoConfirmModal, not a drawer.",
|
|
327
|
+
"variants": [
|
|
328
|
+
"FlotoDrawer",
|
|
329
|
+
"FlotoDrawerForm"
|
|
330
|
+
],
|
|
331
|
+
"registry": "components/registry/drawer.json",
|
|
332
|
+
"spec": "components/specs/drawer.md",
|
|
333
|
+
"storybook": "Organisms/Drawer",
|
|
334
|
+
"related": [
|
|
335
|
+
"MModal",
|
|
336
|
+
"FlotoConfirmModal",
|
|
337
|
+
"FlotoDrawerForm",
|
|
338
|
+
"FlotoForm",
|
|
339
|
+
"FlotoFormItem",
|
|
340
|
+
"MButton"
|
|
341
|
+
],
|
|
342
|
+
"knownIssueCount": 3,
|
|
343
|
+
"tokenCount": 3,
|
|
344
|
+
"has": {
|
|
345
|
+
"props": false,
|
|
346
|
+
"states": true,
|
|
347
|
+
"sizes": true,
|
|
348
|
+
"variants": true,
|
|
349
|
+
"decisionFlow": true,
|
|
350
|
+
"do": true,
|
|
351
|
+
"dont": true,
|
|
352
|
+
"tokensUsed": true,
|
|
353
|
+
"apis": true,
|
|
354
|
+
"a11y": true
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"id": "dropdown-picker",
|
|
359
|
+
"display": "DropdownPicker",
|
|
360
|
+
"tier": "organism",
|
|
361
|
+
"family": "Form Controls",
|
|
362
|
+
"category": null,
|
|
363
|
+
"status": "core",
|
|
364
|
+
"summary": "The product's custom select: popover-anchored, virtualized, searchable, single/multi-select, keyboard nav, optional inline-add. Not a native/Ant select.",
|
|
365
|
+
"selectHint": "Free-form typed tags? -> LooseTags, not the picker.",
|
|
366
|
+
"variants": [
|
|
367
|
+
"single",
|
|
368
|
+
"multiple",
|
|
369
|
+
"not-searchable",
|
|
370
|
+
"allow-clear",
|
|
371
|
+
"text-only",
|
|
372
|
+
"read-only-pills",
|
|
373
|
+
"inline-add",
|
|
374
|
+
"two-pane",
|
|
375
|
+
"use-popover"
|
|
376
|
+
],
|
|
377
|
+
"registry": "components/registry/dropdown-picker.json",
|
|
378
|
+
"spec": "components/specs/dropdown-picker.md",
|
|
379
|
+
"storybook": "Organisms/DropdownPicker",
|
|
380
|
+
"related": [
|
|
381
|
+
"SingleTrigger",
|
|
382
|
+
"MultipleTrigger",
|
|
383
|
+
"SelectedItemPills",
|
|
384
|
+
"LooseTags",
|
|
385
|
+
"MSelect",
|
|
386
|
+
"MPopover",
|
|
387
|
+
"MPopper",
|
|
388
|
+
"MMenu",
|
|
389
|
+
"MCheckbox"
|
|
390
|
+
],
|
|
391
|
+
"knownIssueCount": 5,
|
|
392
|
+
"tokenCount": 4,
|
|
393
|
+
"has": {
|
|
394
|
+
"props": true,
|
|
395
|
+
"states": true,
|
|
396
|
+
"sizes": false,
|
|
397
|
+
"variants": true,
|
|
398
|
+
"decisionFlow": true,
|
|
399
|
+
"do": true,
|
|
400
|
+
"dont": true,
|
|
401
|
+
"tokensUsed": true,
|
|
402
|
+
"apis": false,
|
|
403
|
+
"a11y": true
|
|
404
|
+
}
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"id": "filters",
|
|
408
|
+
"display": "Filters",
|
|
409
|
+
"tier": "molecule",
|
|
410
|
+
"family": "Filters",
|
|
411
|
+
"category": null,
|
|
412
|
+
"status": "stable",
|
|
413
|
+
"summary": "The product's filtering components, grouped by ARCHETYPE (not by the screen they sit in). Four distinct kinds: the Expression builder (nested AND/OR query builder), the Filter bar (inline chips), Quick filters (preset menu), and the Filter row (multi-selects + Reset/Apply). These are molecules; the Toolbars (organisms) compose them.",
|
|
414
|
+
"selectHint": "Complex AND/OR conditions across multiple groups? -> Expression builder (FiltersContainer, 32×).",
|
|
415
|
+
"variants": [
|
|
416
|
+
"ExpressionBuilder",
|
|
417
|
+
"FilterBar",
|
|
418
|
+
"QuickFilters",
|
|
419
|
+
"FilterRow",
|
|
420
|
+
"VerticalFilter",
|
|
421
|
+
"expression-builder",
|
|
422
|
+
"filter-bar",
|
|
423
|
+
"quick-filters",
|
|
424
|
+
"filter-row",
|
|
425
|
+
"vertical-filter"
|
|
426
|
+
],
|
|
427
|
+
"registry": "components/registry/filters.json",
|
|
428
|
+
"spec": "components/specs/filters.md",
|
|
429
|
+
"storybook": "Molecules/Filters",
|
|
430
|
+
"related": [
|
|
431
|
+
"dropdown-picker",
|
|
432
|
+
"input",
|
|
433
|
+
"tag",
|
|
434
|
+
"table"
|
|
435
|
+
],
|
|
436
|
+
"knownIssueCount": 1,
|
|
437
|
+
"tokenCount": 8,
|
|
438
|
+
"has": {
|
|
439
|
+
"props": true,
|
|
440
|
+
"states": true,
|
|
441
|
+
"sizes": false,
|
|
442
|
+
"variants": true,
|
|
443
|
+
"decisionFlow": true,
|
|
444
|
+
"do": true,
|
|
445
|
+
"dont": true,
|
|
446
|
+
"tokensUsed": true,
|
|
447
|
+
"apis": true,
|
|
448
|
+
"a11y": true
|
|
449
|
+
}
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
"id": "form-item",
|
|
453
|
+
"display": "Form Field",
|
|
454
|
+
"tier": "molecule",
|
|
455
|
+
"family": "Form Controls",
|
|
456
|
+
"category": "form",
|
|
457
|
+
"status": "core",
|
|
458
|
+
"summary": "The form field: label + validation + control + error/help. MValidationProvider (vee-validate) -> MFormItem. Most-used component (1783x). required is derived from rules.",
|
|
459
|
+
"selectHint": "Building a form field (label + control + validation)? -> FlotoFormItem (always).",
|
|
460
|
+
"variants": [
|
|
461
|
+
"text",
|
|
462
|
+
"number",
|
|
463
|
+
"textarea",
|
|
464
|
+
"vertical",
|
|
465
|
+
"horizontal",
|
|
466
|
+
"custom-control"
|
|
467
|
+
],
|
|
468
|
+
"registry": "components/registry/form-item.json",
|
|
469
|
+
"spec": "components/specs/form-item.md",
|
|
470
|
+
"storybook": "Molecules/FormItem",
|
|
471
|
+
"related": [
|
|
472
|
+
"MInput",
|
|
473
|
+
"MRadioGroup",
|
|
474
|
+
"MCheckbox",
|
|
475
|
+
"MSwitch",
|
|
476
|
+
"FlotoDropdownPicker",
|
|
477
|
+
"LooseTags",
|
|
478
|
+
"FlotoForm",
|
|
479
|
+
"MValidationObserver"
|
|
480
|
+
],
|
|
481
|
+
"knownIssueCount": 3,
|
|
482
|
+
"tokenCount": 3,
|
|
483
|
+
"has": {
|
|
484
|
+
"props": true,
|
|
485
|
+
"states": true,
|
|
486
|
+
"sizes": false,
|
|
487
|
+
"variants": true,
|
|
488
|
+
"decisionFlow": true,
|
|
489
|
+
"do": true,
|
|
490
|
+
"dont": true,
|
|
491
|
+
"tokensUsed": true,
|
|
492
|
+
"apis": true,
|
|
493
|
+
"a11y": true
|
|
494
|
+
}
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
"id": "input",
|
|
498
|
+
"display": "Input",
|
|
499
|
+
"tier": "atom",
|
|
500
|
+
"family": "Form Controls",
|
|
501
|
+
"category": "form-control",
|
|
502
|
+
"status": "core",
|
|
503
|
+
"summary": "Text input. A type-router (text/password/number/search/textarea/datetime). v-model is value+update. Almost always wrapped by FlotoFormItem for label+validation.",
|
|
504
|
+
"selectHint": "Multi-line text? -> type=textarea (or FlotoFormItem type=textarea).",
|
|
505
|
+
"variants": [
|
|
506
|
+
"text",
|
|
507
|
+
"password",
|
|
508
|
+
"number",
|
|
509
|
+
"search",
|
|
510
|
+
"textarea",
|
|
511
|
+
"material-input",
|
|
512
|
+
"no-border-input",
|
|
513
|
+
"full-border-text-area",
|
|
514
|
+
"full-bordered-addon-input",
|
|
515
|
+
"auto-height-input",
|
|
516
|
+
"text-lg-input",
|
|
517
|
+
"datetime"
|
|
518
|
+
],
|
|
519
|
+
"registry": "components/registry/input.json",
|
|
520
|
+
"spec": "components/specs/input.md",
|
|
521
|
+
"storybook": "Atoms/Input",
|
|
522
|
+
"related": [
|
|
523
|
+
"FlotoFormItem",
|
|
524
|
+
"MInputNumber",
|
|
525
|
+
"MInputSearch",
|
|
526
|
+
"MInputGroup",
|
|
527
|
+
"LooseTags",
|
|
528
|
+
"date picker"
|
|
529
|
+
],
|
|
530
|
+
"knownIssueCount": 3,
|
|
531
|
+
"tokenCount": 7,
|
|
532
|
+
"has": {
|
|
533
|
+
"props": true,
|
|
534
|
+
"states": true,
|
|
535
|
+
"sizes": false,
|
|
536
|
+
"variants": true,
|
|
537
|
+
"decisionFlow": true,
|
|
538
|
+
"do": true,
|
|
539
|
+
"dont": true,
|
|
540
|
+
"tokensUsed": true,
|
|
541
|
+
"apis": false,
|
|
542
|
+
"a11y": true
|
|
543
|
+
}
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"id": "link",
|
|
547
|
+
"display": "Link",
|
|
548
|
+
"tier": "atom",
|
|
549
|
+
"family": "Link",
|
|
550
|
+
"category": "navigation",
|
|
551
|
+
"status": "core",
|
|
552
|
+
"summary": "Navigation control. Default renders a RouterLink (<a>); as-button renders an MButton that pushes the route on click. Only own prop is asButton; everything else passes through.",
|
|
553
|
+
"selectHint": "Performs an action (save/delete/change state)? -> Button, not a link.",
|
|
554
|
+
"variants": [
|
|
555
|
+
"default",
|
|
556
|
+
"asButton",
|
|
557
|
+
"text-link",
|
|
558
|
+
"as-button",
|
|
559
|
+
"external",
|
|
560
|
+
"k-link",
|
|
561
|
+
"resource-link",
|
|
562
|
+
"link-label",
|
|
563
|
+
"completed-link",
|
|
564
|
+
"admin-page-link"
|
|
565
|
+
],
|
|
566
|
+
"registry": "components/registry/link.json",
|
|
567
|
+
"spec": "components/specs/link.md",
|
|
568
|
+
"storybook": "Atoms/Link",
|
|
569
|
+
"related": [
|
|
570
|
+
"MButton",
|
|
571
|
+
"MDropdown",
|
|
572
|
+
"RouterLink"
|
|
573
|
+
],
|
|
574
|
+
"knownIssueCount": 3,
|
|
575
|
+
"tokenCount": 6,
|
|
576
|
+
"has": {
|
|
577
|
+
"props": true,
|
|
578
|
+
"states": true,
|
|
579
|
+
"sizes": false,
|
|
580
|
+
"variants": true,
|
|
581
|
+
"decisionFlow": true,
|
|
582
|
+
"do": true,
|
|
583
|
+
"dont": true,
|
|
584
|
+
"tokensUsed": true,
|
|
585
|
+
"apis": false,
|
|
586
|
+
"a11y": true
|
|
587
|
+
}
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"id": "loose-tags",
|
|
591
|
+
"display": "LooseTags",
|
|
592
|
+
"tier": "molecule",
|
|
593
|
+
"family": "Tag",
|
|
594
|
+
"category": "form-input",
|
|
595
|
+
"status": "core",
|
|
596
|
+
"summary": "Free-form tag input (type to create tags) with async suggestions. The Tag family's input member; home of the teal pills.",
|
|
597
|
+
"selectHint": "Just displaying tags (label/count/status)? -> MTag/MStatusTag, not LooseTags.",
|
|
598
|
+
"variants": [
|
|
599
|
+
"default",
|
|
600
|
+
"disabled",
|
|
601
|
+
"asDropdown",
|
|
602
|
+
"editable"
|
|
603
|
+
],
|
|
604
|
+
"registry": "components/registry/loose-tags.json",
|
|
605
|
+
"spec": "components/specs/loose-tags.md",
|
|
606
|
+
"storybook": "Molecules/LooseTags",
|
|
607
|
+
"related": [
|
|
608
|
+
"MTag",
|
|
609
|
+
"MStatusTag",
|
|
610
|
+
"SelectedItemPills",
|
|
611
|
+
"FlotoDropdownPicker",
|
|
612
|
+
"MSelect"
|
|
613
|
+
],
|
|
614
|
+
"knownIssueCount": 4,
|
|
615
|
+
"tokenCount": 3,
|
|
616
|
+
"has": {
|
|
617
|
+
"props": true,
|
|
618
|
+
"states": true,
|
|
619
|
+
"sizes": false,
|
|
620
|
+
"variants": true,
|
|
621
|
+
"decisionFlow": true,
|
|
622
|
+
"do": true,
|
|
623
|
+
"dont": true,
|
|
624
|
+
"tokensUsed": true,
|
|
625
|
+
"apis": false,
|
|
626
|
+
"a11y": true
|
|
627
|
+
}
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"id": "menu",
|
|
631
|
+
"display": "Menu",
|
|
632
|
+
"tier": "molecule",
|
|
633
|
+
"family": "Menu",
|
|
634
|
+
"category": null,
|
|
635
|
+
"status": "stable",
|
|
636
|
+
"summary": "The MMenu primitive (a vertical list of selectable icon+label rows, with dividers and danger/positive colours) catalogued in its own right, plus its action-surface usage: the Context/Action menu (FlotoGridActions — a '...' trigger opening an MMenu of actions).",
|
|
637
|
+
"selectHint": "A list of items to render inside something (nav, picker, dropdown)? -> Menu primitive.",
|
|
638
|
+
"variants": [
|
|
639
|
+
"Menu",
|
|
640
|
+
"ContextMenu",
|
|
641
|
+
"menu-primitive",
|
|
642
|
+
"context-menu"
|
|
643
|
+
],
|
|
644
|
+
"registry": "components/registry/menu.json",
|
|
645
|
+
"spec": "components/specs/menu.md",
|
|
646
|
+
"storybook": "Molecules/Menu",
|
|
647
|
+
"related": [
|
|
648
|
+
"navigation",
|
|
649
|
+
"dropdownpicker",
|
|
650
|
+
"select",
|
|
651
|
+
"popover",
|
|
652
|
+
"toolbars",
|
|
653
|
+
"table"
|
|
654
|
+
],
|
|
655
|
+
"knownIssueCount": 3,
|
|
656
|
+
"tokenCount": 8,
|
|
657
|
+
"has": {
|
|
658
|
+
"props": false,
|
|
659
|
+
"states": true,
|
|
660
|
+
"sizes": false,
|
|
661
|
+
"variants": true,
|
|
662
|
+
"decisionFlow": true,
|
|
663
|
+
"do": true,
|
|
664
|
+
"dont": true,
|
|
665
|
+
"tokensUsed": true,
|
|
666
|
+
"apis": true,
|
|
667
|
+
"a11y": true
|
|
668
|
+
}
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
"id": "modal",
|
|
672
|
+
"display": "Modal",
|
|
673
|
+
"tier": "organism",
|
|
674
|
+
"family": "Overlay",
|
|
675
|
+
"category": "overlay",
|
|
676
|
+
"status": "core",
|
|
677
|
+
"summary": "Centered dialog over a dimmed backdrop. MModal (39x) is the base; FlotoConfirmModal (71x) is the confirm variant. Open via trigger slot or open prop. No x/backdrop-close (footer/Escape only).",
|
|
678
|
+
"selectHint": "Yes/no or destructive confirmation? -> FlotoConfirmModal (variant=error for destructive).",
|
|
679
|
+
"variants": [
|
|
680
|
+
"MModal",
|
|
681
|
+
"FlotoConfirmModal",
|
|
682
|
+
"hide-footer",
|
|
683
|
+
"scrollable-modal",
|
|
684
|
+
"restrict-width",
|
|
685
|
+
"no-padding-modal",
|
|
686
|
+
"no-padding-modal / no-padding-confrim-modal",
|
|
687
|
+
"backdrop"
|
|
688
|
+
],
|
|
689
|
+
"registry": "components/registry/modal.json",
|
|
690
|
+
"spec": "components/specs/modal.md",
|
|
691
|
+
"storybook": "Organisms/Modal",
|
|
692
|
+
"related": [
|
|
693
|
+
"FlotoConfirmModal",
|
|
694
|
+
"FlotoDrawer",
|
|
695
|
+
"FlotoDrawerForm",
|
|
696
|
+
"MButton",
|
|
697
|
+
"FlotoFormItem"
|
|
698
|
+
],
|
|
699
|
+
"knownIssueCount": 3,
|
|
700
|
+
"tokenCount": 3,
|
|
701
|
+
"has": {
|
|
702
|
+
"props": false,
|
|
703
|
+
"states": true,
|
|
704
|
+
"sizes": true,
|
|
705
|
+
"variants": true,
|
|
706
|
+
"decisionFlow": true,
|
|
707
|
+
"do": true,
|
|
708
|
+
"dont": true,
|
|
709
|
+
"tokensUsed": true,
|
|
710
|
+
"apis": true,
|
|
711
|
+
"a11y": true
|
|
712
|
+
}
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"id": "navigation",
|
|
716
|
+
"display": "Navigation",
|
|
717
|
+
"tier": "molecule",
|
|
718
|
+
"family": "Navigation",
|
|
719
|
+
"category": null,
|
|
720
|
+
"status": "stable",
|
|
721
|
+
"summary": "The product's wayfinding components, by archetype: Primary nav (left module sidebar), Side menu (searchable collapsible section menu), Steps (wizard/stepper), Breadcrumb (back + trail), Back button. Tabs are their own family (Molecules/Tabs).",
|
|
722
|
+
"selectHint": "Switch between top-level product MODULES? -> Primary nav (left sidebar).",
|
|
723
|
+
"variants": [
|
|
724
|
+
"PrimaryNav",
|
|
725
|
+
"SideMenu",
|
|
726
|
+
"Steps",
|
|
727
|
+
"Breadcrumb",
|
|
728
|
+
"BackButton",
|
|
729
|
+
"Tabs",
|
|
730
|
+
"primary-nav",
|
|
731
|
+
"side-menu-section",
|
|
732
|
+
"side-menu-tree",
|
|
733
|
+
"side-menu-categories",
|
|
734
|
+
"side-menu-list",
|
|
735
|
+
"steps",
|
|
736
|
+
"breadcrumb",
|
|
737
|
+
"back-button",
|
|
738
|
+
"user-menu",
|
|
739
|
+
"notification-dropdown",
|
|
740
|
+
"omnibox",
|
|
741
|
+
"noc-player",
|
|
742
|
+
"timeline-scrollbar",
|
|
743
|
+
"graph-breadcrumb",
|
|
744
|
+
"metric-picker",
|
|
745
|
+
"UserMenu",
|
|
746
|
+
"NotificationDropdown",
|
|
747
|
+
"Omnibox",
|
|
748
|
+
"NocPlayer",
|
|
749
|
+
"TimelineScrollbar",
|
|
750
|
+
"GraphBreadcrumb"
|
|
751
|
+
],
|
|
752
|
+
"registry": "components/registry/navigation.json",
|
|
753
|
+
"spec": "components/specs/navigation.md",
|
|
754
|
+
"storybook": "Molecules/Navigation",
|
|
755
|
+
"related": [
|
|
756
|
+
"tabs",
|
|
757
|
+
"toolbars",
|
|
758
|
+
"input",
|
|
759
|
+
"tag",
|
|
760
|
+
"table"
|
|
761
|
+
],
|
|
762
|
+
"knownIssueCount": 2,
|
|
763
|
+
"tokenCount": 9,
|
|
764
|
+
"has": {
|
|
765
|
+
"props": false,
|
|
766
|
+
"states": true,
|
|
767
|
+
"sizes": false,
|
|
768
|
+
"variants": true,
|
|
769
|
+
"decisionFlow": true,
|
|
770
|
+
"do": true,
|
|
771
|
+
"dont": true,
|
|
772
|
+
"tokensUsed": true,
|
|
773
|
+
"apis": true,
|
|
774
|
+
"a11y": true
|
|
775
|
+
}
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
"id": "popover",
|
|
779
|
+
"display": "Popover",
|
|
780
|
+
"tier": "molecule",
|
|
781
|
+
"family": "Popover & Tooltip",
|
|
782
|
+
"category": null,
|
|
783
|
+
"status": "stable",
|
|
784
|
+
"summary": "Click-triggered floating panel anchored to a trigger, holding interactive content (action menus, pickers, mini-forms). Slots trigger/title/default each get {hide,show,toggle}. MPopper is the lower-level v-popover positioning primitive that powers FlotoDropdownPicker.",
|
|
785
|
+
"selectHint": "Is the content a short non-interactive hint? -> Tooltip, not Popover.",
|
|
786
|
+
"variants": [
|
|
787
|
+
"click",
|
|
788
|
+
"hover",
|
|
789
|
+
"action-menu",
|
|
790
|
+
"grid-row-actions",
|
|
791
|
+
"rich-panel"
|
|
792
|
+
],
|
|
793
|
+
"registry": "components/registry/popover.json",
|
|
794
|
+
"spec": "components/specs/popover.md",
|
|
795
|
+
"storybook": "Molecules/Popover",
|
|
796
|
+
"related": [
|
|
797
|
+
"tooltip",
|
|
798
|
+
"modal",
|
|
799
|
+
"dropdown-picker"
|
|
800
|
+
],
|
|
801
|
+
"knownIssueCount": 3,
|
|
802
|
+
"tokenCount": 3,
|
|
803
|
+
"has": {
|
|
804
|
+
"props": true,
|
|
805
|
+
"states": true,
|
|
806
|
+
"sizes": false,
|
|
807
|
+
"variants": true,
|
|
808
|
+
"decisionFlow": true,
|
|
809
|
+
"do": true,
|
|
810
|
+
"dont": true,
|
|
811
|
+
"tokensUsed": true,
|
|
812
|
+
"apis": false,
|
|
813
|
+
"a11y": true
|
|
814
|
+
}
|
|
815
|
+
},
|
|
816
|
+
{
|
|
817
|
+
"id": "radio",
|
|
818
|
+
"display": "Radio",
|
|
819
|
+
"tier": "atom",
|
|
820
|
+
"family": "Selection Controls",
|
|
821
|
+
"category": null,
|
|
822
|
+
"status": "core",
|
|
823
|
+
"summary": "One-of-many selection control. Use MRadioGroup with :options + v-model; as-button renders a segmented control. Standalone MRadio is unused.",
|
|
824
|
+
"selectHint": "Multi-select (pick any number)? -> Checkbox.",
|
|
825
|
+
"variants": [
|
|
826
|
+
"list",
|
|
827
|
+
"segmented",
|
|
828
|
+
"segmented-with-icons",
|
|
829
|
+
"severity-switch",
|
|
830
|
+
"plain",
|
|
831
|
+
"with-icons",
|
|
832
|
+
"radio-list-dot",
|
|
833
|
+
"outline"
|
|
834
|
+
],
|
|
835
|
+
"registry": "components/registry/radio.json",
|
|
836
|
+
"spec": "components/specs/radio.md",
|
|
837
|
+
"storybook": "Atoms/Radio",
|
|
838
|
+
"related": [
|
|
839
|
+
"MCheckbox",
|
|
840
|
+
"MSwitch",
|
|
841
|
+
"FlotoDropdownPicker",
|
|
842
|
+
"MButton (segmented = this with as-button)"
|
|
843
|
+
],
|
|
844
|
+
"knownIssueCount": 4,
|
|
845
|
+
"tokenCount": 3,
|
|
846
|
+
"has": {
|
|
847
|
+
"props": true,
|
|
848
|
+
"states": true,
|
|
849
|
+
"sizes": true,
|
|
850
|
+
"variants": true,
|
|
851
|
+
"decisionFlow": true,
|
|
852
|
+
"do": true,
|
|
853
|
+
"dont": true,
|
|
854
|
+
"tokensUsed": true,
|
|
855
|
+
"apis": false,
|
|
856
|
+
"a11y": true
|
|
857
|
+
}
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
"id": "scheduler",
|
|
861
|
+
"display": "Scheduler (Recurrence)",
|
|
862
|
+
"tier": "molecule",
|
|
863
|
+
"family": "Scheduler",
|
|
864
|
+
"category": null,
|
|
865
|
+
"status": "stable",
|
|
866
|
+
"summary": "A composite recurrence builder. A 'Scheduler Type' segmented control (MRadioGroup as-button: Once · Daily · Weekly · Monthly) swaps in a sub-form. Once/Daily = Start Date + Hours; Weekly adds Days (Mon-Sun); Monthly adds Months + Dates (1-31). Hours = the custom dropdown TimePicker (multi-select times); Days/Months/Dates = FlotoDropdownPicker multi-selects; Start Date = MDatePicker (date-only, min-date today). Used for backups, network discovery, compliance audits, monitor (re)discovery, reports, runbooks.",
|
|
867
|
+
"selectHint": "Need a RECURRING schedule (run X every day/week/month)? -> ScheduleInput.",
|
|
868
|
+
"variants": [
|
|
869
|
+
"Once",
|
|
870
|
+
"Daily",
|
|
871
|
+
"Weekly",
|
|
872
|
+
"Monthly"
|
|
873
|
+
],
|
|
874
|
+
"registry": "components/registry/scheduler.json",
|
|
875
|
+
"spec": "components/specs/scheduler.md",
|
|
876
|
+
"storybook": "Molecules/Scheduler",
|
|
877
|
+
"related": [
|
|
878
|
+
"radio",
|
|
879
|
+
"date-time-pickers",
|
|
880
|
+
"dropdown-picker",
|
|
881
|
+
"form-item"
|
|
882
|
+
],
|
|
883
|
+
"knownIssueCount": 2,
|
|
884
|
+
"tokenCount": 5,
|
|
885
|
+
"has": {
|
|
886
|
+
"props": true,
|
|
887
|
+
"states": true,
|
|
888
|
+
"sizes": false,
|
|
889
|
+
"variants": true,
|
|
890
|
+
"decisionFlow": true,
|
|
891
|
+
"do": true,
|
|
892
|
+
"dont": true,
|
|
893
|
+
"tokensUsed": true,
|
|
894
|
+
"apis": false,
|
|
895
|
+
"a11y": true
|
|
896
|
+
}
|
|
897
|
+
},
|
|
898
|
+
{
|
|
899
|
+
"id": "select",
|
|
900
|
+
"display": "Select",
|
|
901
|
+
"tier": "atom",
|
|
902
|
+
"family": "Form Controls",
|
|
903
|
+
"category": "form-control",
|
|
904
|
+
"status": "low-use",
|
|
905
|
+
"summary": "Kit's raw Ant a-select wrapper. LOW-USE (2x, both mode=tags) — the product's select is FlotoDropdownPicker (510x). Modes default/multiple/tags; v-model value/change.",
|
|
906
|
+
"selectHint": "Need the product's standard select (single/multi/search/virtualized/custom trigger)? -> FlotoDropdownPicker (the norm, 510x).",
|
|
907
|
+
"variants": [
|
|
908
|
+
"single",
|
|
909
|
+
"multiple",
|
|
910
|
+
"tags"
|
|
911
|
+
],
|
|
912
|
+
"registry": "components/registry/select.json",
|
|
913
|
+
"spec": "components/specs/select.md",
|
|
914
|
+
"storybook": "Atoms/Select",
|
|
915
|
+
"related": [
|
|
916
|
+
"FlotoDropdownPicker",
|
|
917
|
+
"LooseTags",
|
|
918
|
+
"MTreeSelect",
|
|
919
|
+
"MSelectOption",
|
|
920
|
+
"FlotoFormItem"
|
|
921
|
+
],
|
|
922
|
+
"knownIssueCount": 5,
|
|
923
|
+
"tokenCount": 4,
|
|
924
|
+
"has": {
|
|
925
|
+
"props": true,
|
|
926
|
+
"states": true,
|
|
927
|
+
"sizes": true,
|
|
928
|
+
"variants": true,
|
|
929
|
+
"decisionFlow": true,
|
|
930
|
+
"do": true,
|
|
931
|
+
"dont": true,
|
|
932
|
+
"tokensUsed": true,
|
|
933
|
+
"apis": false,
|
|
934
|
+
"a11y": true
|
|
935
|
+
}
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
"id": "severity",
|
|
939
|
+
"display": "Severity",
|
|
940
|
+
"tier": "atom",
|
|
941
|
+
"family": "Tag",
|
|
942
|
+
"category": null,
|
|
943
|
+
"status": "core",
|
|
944
|
+
"summary": "The severity INDICATOR — a coloured dot (+ optional label + tooltip) for a severity LEVEL (down / critical / major / warning / clear / up / maintenance / unreachable / unknown / …). Distinct from MStatusTag, which maps status STRINGS to tag-* pills. Used 80×. Renders --severity-<level>; can take `severity` directly or resolve it live from a monitor (objectId / instance / counter) via DB workers.",
|
|
945
|
+
"selectHint": "Showing a monitor/alert SEVERITY level (critical/major/warning/clear/up/down/…)? -> Severity (dot).",
|
|
946
|
+
"variants": [
|
|
947
|
+
"dot",
|
|
948
|
+
"dot+label",
|
|
949
|
+
"solid-chip",
|
|
950
|
+
"text",
|
|
951
|
+
"bg-fill",
|
|
952
|
+
"stripe",
|
|
953
|
+
"picker",
|
|
954
|
+
"count-box",
|
|
955
|
+
"switch"
|
|
956
|
+
],
|
|
957
|
+
"registry": "components/registry/severity.json",
|
|
958
|
+
"spec": null,
|
|
959
|
+
"storybook": "Atoms/Severity",
|
|
960
|
+
"related": [
|
|
961
|
+
"tag",
|
|
962
|
+
"filters",
|
|
963
|
+
"table"
|
|
964
|
+
],
|
|
965
|
+
"knownIssueCount": 2,
|
|
966
|
+
"tokenCount": 20,
|
|
967
|
+
"has": {
|
|
968
|
+
"props": true,
|
|
969
|
+
"states": true,
|
|
970
|
+
"sizes": true,
|
|
971
|
+
"variants": true,
|
|
972
|
+
"decisionFlow": true,
|
|
973
|
+
"do": true,
|
|
974
|
+
"dont": true,
|
|
975
|
+
"tokensUsed": true,
|
|
976
|
+
"apis": false,
|
|
977
|
+
"a11y": true
|
|
978
|
+
}
|
|
979
|
+
},
|
|
980
|
+
{
|
|
981
|
+
"id": "switch",
|
|
982
|
+
"display": "Switch",
|
|
983
|
+
"tier": "atom",
|
|
984
|
+
"family": "Selection Controls",
|
|
985
|
+
"category": null,
|
|
986
|
+
"status": "core",
|
|
987
|
+
"summary": "Instant on/off toggle for a setting that applies immediately. Controlled.",
|
|
988
|
+
"selectHint": "Mutually-exclusive options? -> MRadio.",
|
|
989
|
+
"variants": [],
|
|
990
|
+
"registry": "components/registry/switch.json",
|
|
991
|
+
"spec": "components/specs/switch.md",
|
|
992
|
+
"storybook": "Atoms/Switch",
|
|
993
|
+
"related": [
|
|
994
|
+
"MCheckbox",
|
|
995
|
+
"MRadio"
|
|
996
|
+
],
|
|
997
|
+
"knownIssueCount": 5,
|
|
998
|
+
"tokenCount": 3,
|
|
999
|
+
"has": {
|
|
1000
|
+
"props": true,
|
|
1001
|
+
"states": true,
|
|
1002
|
+
"sizes": true,
|
|
1003
|
+
"variants": false,
|
|
1004
|
+
"decisionFlow": true,
|
|
1005
|
+
"do": true,
|
|
1006
|
+
"dont": true,
|
|
1007
|
+
"tokensUsed": true,
|
|
1008
|
+
"apis": false,
|
|
1009
|
+
"a11y": true
|
|
1010
|
+
}
|
|
1011
|
+
},
|
|
1012
|
+
{
|
|
1013
|
+
"id": "table",
|
|
1014
|
+
"display": "Table (Grid)",
|
|
1015
|
+
"tier": "organism",
|
|
1016
|
+
"family": "Table",
|
|
1017
|
+
"category": null,
|
|
1018
|
+
"status": "stable",
|
|
1019
|
+
"summary": "The product's primary data table. Resizable/reorderable/sortable columns, client + server paging, grouping, selection (with bulk-action bar), expandable detail rows, per-column cell slots. MGrid is the grid; FlotoPaginatedCrud is the fetch+paginate wrapper around it.",
|
|
1020
|
+
"selectHint": "Need to fetch + paginate a list with CRUD? -> FlotoPaginatedCrud (wraps MGrid; handles fetch/paging/search/filters).",
|
|
1021
|
+
"variants": [
|
|
1022
|
+
"basic",
|
|
1023
|
+
"selectable",
|
|
1024
|
+
"expandable",
|
|
1025
|
+
"grouping",
|
|
1026
|
+
"cell-types",
|
|
1027
|
+
"pagination",
|
|
1028
|
+
"tree",
|
|
1029
|
+
"pivot",
|
|
1030
|
+
"hide-expand-column",
|
|
1031
|
+
"hide-header",
|
|
1032
|
+
"hide-grouping",
|
|
1033
|
+
"tabular-content-grid",
|
|
1034
|
+
"service-grid",
|
|
1035
|
+
"rum-grid",
|
|
1036
|
+
"mgrid-container"
|
|
1037
|
+
],
|
|
1038
|
+
"registry": "components/registry/table.json",
|
|
1039
|
+
"spec": "components/specs/table.md",
|
|
1040
|
+
"storybook": "Organisms/Table",
|
|
1041
|
+
"related": [
|
|
1042
|
+
"popover (row-actions kebab + bulk-action bar)",
|
|
1043
|
+
"tag (status cells)",
|
|
1044
|
+
"checkbox (selection)",
|
|
1045
|
+
"dropdown-picker (column filters)"
|
|
1046
|
+
],
|
|
1047
|
+
"knownIssueCount": 2,
|
|
1048
|
+
"tokenCount": 7,
|
|
1049
|
+
"has": {
|
|
1050
|
+
"props": true,
|
|
1051
|
+
"states": true,
|
|
1052
|
+
"sizes": false,
|
|
1053
|
+
"variants": true,
|
|
1054
|
+
"decisionFlow": true,
|
|
1055
|
+
"do": true,
|
|
1056
|
+
"dont": true,
|
|
1057
|
+
"tokensUsed": true,
|
|
1058
|
+
"apis": false,
|
|
1059
|
+
"a11y": true
|
|
1060
|
+
}
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
"id": "tabs",
|
|
1064
|
+
"display": "Tabs",
|
|
1065
|
+
"tier": "molecule",
|
|
1066
|
+
"family": "Tabs",
|
|
1067
|
+
"category": null,
|
|
1068
|
+
"status": "stable",
|
|
1069
|
+
"summary": "In-page tabbed navigation that switches between sibling views of one context. MTab wraps Ant a-tabs; panes are MTabPane. The product uses ONLY line-style, top-positioned, default-size tabs — Ant's card/editable-card/vertical/size/tabBarExtraContent features are available but unused in-product. Active tab = --primary (text + underline + ink bar); inactive = --tabs-text-color; bar bottom border = --border-color. Real variants are class-based.",
|
|
1070
|
+
"selectHint": "Switching between sibling VIEWS of one context (not navigating to other pages)? -> Tabs. (For page nav use the router/menu.)",
|
|
1071
|
+
"variants": [
|
|
1072
|
+
"line",
|
|
1073
|
+
"no-border",
|
|
1074
|
+
"sticky-tab",
|
|
1075
|
+
"with-counts",
|
|
1076
|
+
"with-icons",
|
|
1077
|
+
"dynamic",
|
|
1078
|
+
"persisted"
|
|
1079
|
+
],
|
|
1080
|
+
"registry": "components/registry/tabs.json",
|
|
1081
|
+
"spec": "components/specs/tabs.md",
|
|
1082
|
+
"storybook": "Molecules/Tabs",
|
|
1083
|
+
"related": [
|
|
1084
|
+
"dropdown-picker",
|
|
1085
|
+
"table",
|
|
1086
|
+
"radio"
|
|
1087
|
+
],
|
|
1088
|
+
"knownIssueCount": 1,
|
|
1089
|
+
"tokenCount": 6,
|
|
1090
|
+
"has": {
|
|
1091
|
+
"props": true,
|
|
1092
|
+
"states": true,
|
|
1093
|
+
"sizes": false,
|
|
1094
|
+
"variants": true,
|
|
1095
|
+
"decisionFlow": true,
|
|
1096
|
+
"do": true,
|
|
1097
|
+
"dont": true,
|
|
1098
|
+
"tokensUsed": true,
|
|
1099
|
+
"apis": false,
|
|
1100
|
+
"a11y": true
|
|
1101
|
+
}
|
|
1102
|
+
},
|
|
1103
|
+
{
|
|
1104
|
+
"id": "tag",
|
|
1105
|
+
"display": "Tag",
|
|
1106
|
+
"tier": "atom",
|
|
1107
|
+
"family": "Tag",
|
|
1108
|
+
"category": null,
|
|
1109
|
+
"status": "core",
|
|
1110
|
+
"summary": "Compact label for categorization or removable selections. Used as a plain tag; color variants are broken.",
|
|
1111
|
+
"selectHint": "User types/adds tags? -> LooseTags (input), not Tag.",
|
|
1112
|
+
"variants": [
|
|
1113
|
+
"MTag",
|
|
1114
|
+
"MStatusTag",
|
|
1115
|
+
"SelectedItemPills",
|
|
1116
|
+
"MultipleTrigger/SingleTrigger",
|
|
1117
|
+
"LooseTags",
|
|
1118
|
+
"TagsList",
|
|
1119
|
+
"appClasses",
|
|
1120
|
+
"tag-red",
|
|
1121
|
+
"tag-green",
|
|
1122
|
+
"tag-yellow",
|
|
1123
|
+
"tag-orange",
|
|
1124
|
+
"tag-purple",
|
|
1125
|
+
"tag-unknown",
|
|
1126
|
+
"tag-primary",
|
|
1127
|
+
"used-count-pill",
|
|
1128
|
+
"note",
|
|
1129
|
+
"stateClasses"
|
|
1130
|
+
],
|
|
1131
|
+
"registry": "components/registry/tag.json",
|
|
1132
|
+
"spec": "components/specs/tag.md",
|
|
1133
|
+
"storybook": "Atoms/Tag",
|
|
1134
|
+
"related": [
|
|
1135
|
+
"MStatusTag",
|
|
1136
|
+
"loose-tags",
|
|
1137
|
+
"tags-list",
|
|
1138
|
+
"MIcon",
|
|
1139
|
+
"severity"
|
|
1140
|
+
],
|
|
1141
|
+
"knownIssueCount": 7,
|
|
1142
|
+
"tokenCount": 3,
|
|
1143
|
+
"has": {
|
|
1144
|
+
"props": true,
|
|
1145
|
+
"states": true,
|
|
1146
|
+
"sizes": false,
|
|
1147
|
+
"variants": true,
|
|
1148
|
+
"decisionFlow": true,
|
|
1149
|
+
"do": true,
|
|
1150
|
+
"dont": true,
|
|
1151
|
+
"tokensUsed": true,
|
|
1152
|
+
"apis": false,
|
|
1153
|
+
"a11y": true
|
|
1154
|
+
}
|
|
1155
|
+
},
|
|
1156
|
+
{
|
|
1157
|
+
"id": "tags-list",
|
|
1158
|
+
"display": "TagsList",
|
|
1159
|
+
"tier": "molecule",
|
|
1160
|
+
"family": "Tag",
|
|
1161
|
+
"category": "display",
|
|
1162
|
+
"status": "dead-code",
|
|
1163
|
+
"summary": "Read-only tag overflow display: up to maxLength neutral chips, else a count chip + hover popover. UNUSED in product (0 usages) — prefer SelectedItemPills.",
|
|
1164
|
+
"selectHint": "Tag overflow display (show some, +N rest)? -> SelectedItemPills (or LooseTags :disabled), NOT TagsList.",
|
|
1165
|
+
"variants": [],
|
|
1166
|
+
"registry": "components/registry/tags-list.json",
|
|
1167
|
+
"spec": "components/specs/tags-list.md",
|
|
1168
|
+
"storybook": "Molecules/TagsList",
|
|
1169
|
+
"related": [
|
|
1170
|
+
"SelectedItemPills",
|
|
1171
|
+
"MTag",
|
|
1172
|
+
"MPopover",
|
|
1173
|
+
"LooseTags"
|
|
1174
|
+
],
|
|
1175
|
+
"knownIssueCount": 2,
|
|
1176
|
+
"tokenCount": 3,
|
|
1177
|
+
"has": {
|
|
1178
|
+
"props": true,
|
|
1179
|
+
"states": true,
|
|
1180
|
+
"sizes": false,
|
|
1181
|
+
"variants": false,
|
|
1182
|
+
"decisionFlow": true,
|
|
1183
|
+
"do": true,
|
|
1184
|
+
"dont": true,
|
|
1185
|
+
"tokensUsed": true,
|
|
1186
|
+
"apis": false,
|
|
1187
|
+
"a11y": true
|
|
1188
|
+
}
|
|
1189
|
+
},
|
|
1190
|
+
{
|
|
1191
|
+
"id": "toolbars",
|
|
1192
|
+
"display": "Toolbars",
|
|
1193
|
+
"tier": "organism",
|
|
1194
|
+
"family": "Toolbars",
|
|
1195
|
+
"category": null,
|
|
1196
|
+
"status": "stable",
|
|
1197
|
+
"summary": "The product's toolbar compositions, as variants of one family. A toolbar is an organism that arranges molecules/atoms (title, search, filters, actions). Variants: Page header, Widget header, Bulk action bar, Grid toolbar, Column chooser.",
|
|
1198
|
+
"selectHint": "Top of a list/detail page (title + actions)? -> Page header.",
|
|
1199
|
+
"variants": [
|
|
1200
|
+
"app-header",
|
|
1201
|
+
"page-header",
|
|
1202
|
+
"widget-header",
|
|
1203
|
+
"bulk-action-bar",
|
|
1204
|
+
"grid-toolbar",
|
|
1205
|
+
"column-chooser"
|
|
1206
|
+
],
|
|
1207
|
+
"registry": "components/registry/toolbars.json",
|
|
1208
|
+
"spec": "components/specs/toolbars.md",
|
|
1209
|
+
"storybook": "Organisms/Toolbars",
|
|
1210
|
+
"related": [
|
|
1211
|
+
"filters",
|
|
1212
|
+
"table",
|
|
1213
|
+
"dropdown-picker",
|
|
1214
|
+
"popover",
|
|
1215
|
+
"date-time-pickers"
|
|
1216
|
+
],
|
|
1217
|
+
"knownIssueCount": 2,
|
|
1218
|
+
"tokenCount": 9,
|
|
1219
|
+
"has": {
|
|
1220
|
+
"props": false,
|
|
1221
|
+
"states": true,
|
|
1222
|
+
"sizes": false,
|
|
1223
|
+
"variants": true,
|
|
1224
|
+
"decisionFlow": true,
|
|
1225
|
+
"do": true,
|
|
1226
|
+
"dont": true,
|
|
1227
|
+
"tokensUsed": true,
|
|
1228
|
+
"apis": true,
|
|
1229
|
+
"a11y": true
|
|
1230
|
+
}
|
|
1231
|
+
},
|
|
1232
|
+
{
|
|
1233
|
+
"id": "tooltip",
|
|
1234
|
+
"display": "Tooltip",
|
|
1235
|
+
"tier": "molecule",
|
|
1236
|
+
"family": "Popover & Tooltip",
|
|
1237
|
+
"category": null,
|
|
1238
|
+
"status": "stable",
|
|
1239
|
+
"summary": "Transient hover/focus label anchored to a trigger. The kit MTooltip is excluded and this Floto override ships instead, rendering through VTippy (not a-tooltip). trigger slot = anchor, default slot = content. Non-interactive — for interactive panels use Popover.",
|
|
1240
|
+
"selectHint": "Is the content interactive (buttons, inputs, links)? -> use Popover, NOT a tooltip.",
|
|
1241
|
+
"variants": [
|
|
1242
|
+
"default",
|
|
1243
|
+
"chart-like-tooltip",
|
|
1244
|
+
"placements"
|
|
1245
|
+
],
|
|
1246
|
+
"registry": "components/registry/tooltip.json",
|
|
1247
|
+
"spec": "components/specs/tooltip.md",
|
|
1248
|
+
"storybook": "Molecules/Tooltip",
|
|
1249
|
+
"related": [
|
|
1250
|
+
"popover",
|
|
1251
|
+
"modal",
|
|
1252
|
+
"dropdown-picker"
|
|
1253
|
+
],
|
|
1254
|
+
"knownIssueCount": 3,
|
|
1255
|
+
"tokenCount": 5,
|
|
1256
|
+
"has": {
|
|
1257
|
+
"props": true,
|
|
1258
|
+
"states": true,
|
|
1259
|
+
"sizes": false,
|
|
1260
|
+
"variants": true,
|
|
1261
|
+
"decisionFlow": true,
|
|
1262
|
+
"do": true,
|
|
1263
|
+
"dont": true,
|
|
1264
|
+
"tokensUsed": true,
|
|
1265
|
+
"apis": false,
|
|
1266
|
+
"a11y": true
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1269
|
+
]
|
|
1270
|
+
}
|