@wheelhouse/ui 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/blocks/columns/columns-types.d.ts +40 -0
- package/dist/blocks/columns/columns-types.d.ts.map +1 -0
- package/dist/blocks/columns/columns-types.js +10 -0
- package/dist/blocks/columns/columns-utils.d.ts +13 -0
- package/dist/blocks/columns/columns-utils.d.ts.map +1 -0
- package/dist/blocks/columns/columns-utils.js +85 -0
- package/dist/blocks/columns/columns.d.ts +3 -0
- package/dist/blocks/columns/columns.d.ts.map +1 -0
- package/dist/blocks/columns/columns.js +79 -0
- package/dist/blocks/columns/columns.stories.d.ts +12 -0
- package/dist/blocks/columns/columns.stories.d.ts.map +1 -0
- package/dist/blocks/columns/columns.stories.js +67 -0
- package/dist/blocks/columns/index.d.ts +6 -0
- package/dist/blocks/columns/index.d.ts.map +1 -0
- package/dist/blocks/columns/index.js +3 -0
- package/dist/blocks/date-selector/date-selector-context.d.ts.map +1 -0
- package/dist/blocks/date-selector/date-selector-default-i18n.d.ts +10 -0
- package/dist/blocks/date-selector/date-selector-default-i18n.d.ts.map +1 -0
- package/dist/blocks/date-selector/date-selector-default-i18n.js +29 -0
- package/dist/blocks/date-selector/date-selector-i18n-resources.d.ts +11 -0
- package/dist/blocks/date-selector/date-selector-i18n-resources.d.ts.map +1 -0
- package/dist/blocks/date-selector/date-selector-i18n-resources.js +248 -0
- package/dist/blocks/date-selector/date-selector-i18n.shared.d.ts +12 -0
- package/dist/blocks/date-selector/date-selector-i18n.shared.d.ts.map +1 -0
- package/dist/blocks/date-selector/date-selector-i18n.shared.js +84 -0
- package/dist/{components → blocks}/date-selector/date-selector-parts.d.ts +9 -0
- package/dist/blocks/date-selector/date-selector-parts.d.ts.map +1 -0
- package/dist/{components → blocks}/date-selector/date-selector-parts.js +21 -6
- package/dist/{components → blocks}/date-selector/date-selector-types.d.ts +70 -0
- package/dist/blocks/date-selector/date-selector-types.d.ts.map +1 -0
- package/dist/{components → blocks}/date-selector/date-selector-types.js +22 -0
- package/dist/blocks/date-selector/date-selector-value.d.ts +81 -0
- package/dist/blocks/date-selector/date-selector-value.d.ts.map +1 -0
- package/dist/blocks/date-selector/date-selector-value.js +423 -0
- package/dist/{components → blocks}/date-selector/date-selector.d.ts +1 -1
- package/dist/blocks/date-selector/date-selector.d.ts.map +1 -0
- package/dist/blocks/date-selector/date-selector.js +191 -0
- package/dist/{components → blocks}/date-selector/date-selector.stories.d.ts +14 -0
- package/dist/blocks/date-selector/date-selector.stories.d.ts.map +1 -0
- package/dist/blocks/date-selector/date-selector.stories.js +299 -0
- package/dist/blocks/date-selector/index.d.ts +11 -0
- package/dist/blocks/date-selector/index.d.ts.map +1 -0
- package/dist/blocks/date-selector/index.js +8 -0
- package/dist/{components → blocks}/date-selector/use-date-selector.d.ts +4 -3
- package/dist/blocks/date-selector/use-date-selector.d.ts.map +1 -0
- package/dist/{components → blocks}/date-selector/use-date-selector.js +14 -8
- package/dist/blocks/index.d.ts +2 -0
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/blocks/index.js +2 -0
- package/dist/blocks/navigation/index.d.ts +4 -1
- package/dist/blocks/navigation/index.d.ts.map +1 -1
- package/dist/blocks/navigation/index.js +2 -1
- package/dist/blocks/navigation/navigation-types.d.ts +60 -0
- package/dist/blocks/navigation/navigation-types.d.ts.map +1 -0
- package/dist/blocks/navigation/navigation-types.js +1 -0
- package/dist/blocks/navigation/navigation.d.ts +9 -0
- package/dist/blocks/navigation/navigation.d.ts.map +1 -0
- package/dist/blocks/navigation/navigation.demo.d.ts +4 -0
- package/dist/blocks/navigation/navigation.demo.d.ts.map +1 -0
- package/dist/blocks/navigation/navigation.demo.js +46 -0
- package/dist/blocks/navigation/navigation.js +98 -0
- package/dist/blocks/navigation/navigation.stories.d.ts +14 -0
- package/dist/blocks/navigation/navigation.stories.d.ts.map +1 -0
- package/dist/blocks/navigation/navigation.stories.js +16 -0
- package/dist/components/accordion/accordion.stories.js +1 -1
- package/dist/components/alert/alert.stories.js +1 -1
- package/dist/components/alert-dialog/alert-dialog.stories.js +1 -1
- package/dist/components/aspect-ratio/aspect-ratio.stories.js +1 -1
- package/dist/components/avatar/avatar.stories.js +1 -1
- package/dist/components/badge/badge.d.ts +1 -1
- package/dist/components/badge/badge.stories.js +1 -1
- package/dist/components/breadcrumb/breadcrumb.stories.js +1 -1
- package/dist/components/button/button.d.ts +2 -2
- package/dist/components/button/button.stories.js +1 -1
- package/dist/components/button-group/button-group.d.ts +10 -4
- package/dist/components/button-group/button-group.d.ts.map +1 -1
- package/dist/components/button-group/button-group.js +15 -3
- package/dist/components/button-group/button-group.stories.js +1 -1
- package/dist/components/button-group/index.d.ts +2 -2
- package/dist/components/button-group/index.d.ts.map +1 -1
- package/dist/components/button-group/index.js +1 -1
- package/dist/components/calendar/calendar.stories.js +1 -1
- package/dist/components/card/card.stories.js +1 -1
- package/dist/components/checkbox/checkbox.stories.js +1 -1
- package/dist/components/collapsible/collapsible.stories.js +1 -1
- package/dist/components/combobox/combobox.stories.js +1 -1
- package/dist/components/command/command.stories.js +1 -1
- package/dist/components/context-menu/context-menu.stories.js +1 -1
- package/dist/components/dialog/dialog.stories.js +1 -1
- package/dist/components/direction/direction.stories.js +1 -1
- package/dist/components/drawer/drawer.stories.js +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +9 -2
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.js +4 -1
- package/dist/components/dropdown-menu/dropdown-menu.stories.js +1 -1
- package/dist/components/dropdown-menu/index.d.ts +2 -2
- package/dist/components/dropdown-menu/index.d.ts.map +1 -1
- package/dist/components/dropdown-menu/index.js +1 -1
- package/dist/components/empty/empty.stories.js +1 -1
- package/dist/components/field/field.stories.js +1 -1
- package/dist/components/filters/filter-date-metric-value.d.ts +32 -0
- package/dist/components/filters/filter-date-metric-value.d.ts.map +1 -0
- package/dist/components/filters/filter-date-metric-value.js +331 -0
- package/dist/components/filters/filters-defaults.d.ts +4 -0
- package/dist/components/filters/filters-defaults.d.ts.map +1 -1
- package/dist/components/filters/filters-defaults.js +59 -1
- package/dist/components/filters/filters-i18n-resources.d.ts +277 -0
- package/dist/components/filters/filters-i18n-resources.d.ts.map +1 -0
- package/dist/components/filters/filters-i18n-resources.js +276 -0
- package/dist/components/filters/filters-i18n.shared.d.ts +16 -0
- package/dist/components/filters/filters-i18n.shared.d.ts.map +1 -0
- package/dist/components/filters/filters-i18n.shared.js +111 -0
- package/dist/components/filters/filters-types.d.ts +33 -1
- package/dist/components/filters/filters-types.d.ts.map +1 -1
- package/dist/components/filters/filters-utils.d.ts +28 -1
- package/dist/components/filters/filters-utils.d.ts.map +1 -1
- package/dist/components/filters/filters-utils.js +102 -0
- package/dist/components/filters/filters.d.ts +21 -3
- package/dist/components/filters/filters.d.ts.map +1 -1
- package/dist/components/filters/filters.js +493 -290
- package/dist/components/filters/filters.stories.d.ts +107 -2
- package/dist/components/filters/filters.stories.d.ts.map +1 -1
- package/dist/components/filters/filters.stories.js +364 -29
- package/dist/components/filters/index.d.ts +3 -1
- package/dist/components/filters/index.d.ts.map +1 -1
- package/dist/components/filters/index.js +3 -1
- package/dist/components/frame/frame.d.ts +1 -1
- package/dist/components/frame/frame.stories.js +1 -1
- package/dist/components/hover-card/hover-card.stories.js +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +0 -1
- package/dist/components/input/input.stories.js +1 -1
- package/dist/components/input-group/input-group.d.ts +2 -2
- package/dist/components/input-group/input-group.stories.js +1 -1
- package/dist/components/item/item.d.ts +2 -2
- package/dist/components/item/item.stories.js +1 -1
- package/dist/components/kbd/kbd.stories.js +1 -1
- package/dist/components/label/label.stories.js +1 -1
- package/dist/components/menubar/menubar.stories.js +1 -1
- package/dist/components/native-select/native-select.stories.js +1 -1
- package/dist/components/navigation-menu/navigation-menu.stories.js +1 -1
- package/dist/components/pagination/pagination.stories.js +1 -1
- package/dist/components/popover/popover.stories.js +1 -1
- package/dist/components/progress/progress.stories.js +1 -1
- package/dist/components/radio-group/radio-group.stories.js +1 -1
- package/dist/components/resizable/resizable.stories.js +1 -1
- package/dist/components/scroll-area/scroll-area.stories.js +1 -1
- package/dist/components/select/select.stories.js +1 -1
- package/dist/components/separator/separator.stories.js +1 -1
- package/dist/components/sheet/sheet.stories.js +1 -1
- package/dist/components/slider/slider.stories.js +1 -1
- package/dist/components/sonner/sonner.stories.js +1 -1
- package/dist/components/sortable/sortable.stories.js +1 -1
- package/dist/components/spinner/spinner.stories.js +1 -1
- package/dist/components/status-indicator/status-indicator.stories.js +1 -1
- package/dist/components/switch/switch.stories.js +1 -1
- package/dist/components/tabs/tabs.d.ts +1 -1
- package/dist/components/tabs/tabs.stories.js +1 -1
- package/dist/components/text/text.d.ts +1 -1
- package/dist/components/text/text.stories.js +1 -1
- package/dist/components/textarea/textarea.stories.js +1 -1
- package/dist/components/toggle/toggle.stories.js +1 -1
- package/dist/components/toggle-group/toggle-group.stories.js +1 -1
- package/dist/components/tooltip/tooltip.stories.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/llms.txt +8 -10
- package/package.json +6 -2
- package/dist/blocks/navigation/pattern-1/index.d.ts +0 -3
- package/dist/blocks/navigation/pattern-1/index.d.ts.map +0 -1
- package/dist/blocks/navigation/pattern-1/index.js +0 -1
- package/dist/blocks/navigation/pattern-1/pattern-1.config.d.ts +0 -47
- package/dist/blocks/navigation/pattern-1/pattern-1.config.d.ts.map +0 -1
- package/dist/blocks/navigation/pattern-1/pattern-1.config.js +0 -55
- package/dist/blocks/navigation/pattern-1/pattern-1.d.ts +0 -7
- package/dist/blocks/navigation/pattern-1/pattern-1.d.ts.map +0 -1
- package/dist/blocks/navigation/pattern-1/pattern-1.js +0 -50
- package/dist/blocks/navigation/pattern-1/pattern-1.stories.d.ts +0 -16
- package/dist/blocks/navigation/pattern-1/pattern-1.stories.d.ts.map +0 -1
- package/dist/blocks/navigation/pattern-1/pattern-1.stories.js +0 -20
- package/dist/components/date-selector/date-selector-context.d.ts.map +0 -1
- package/dist/components/date-selector/date-selector-parts.d.ts.map +0 -1
- package/dist/components/date-selector/date-selector-types.d.ts.map +0 -1
- package/dist/components/date-selector/date-selector-value.d.ts +0 -47
- package/dist/components/date-selector/date-selector-value.d.ts.map +0 -1
- package/dist/components/date-selector/date-selector-value.js +0 -183
- package/dist/components/date-selector/date-selector.d.ts.map +0 -1
- package/dist/components/date-selector/date-selector.js +0 -144
- package/dist/components/date-selector/date-selector.stories.d.ts.map +0 -1
- package/dist/components/date-selector/date-selector.stories.js +0 -144
- package/dist/components/date-selector/index.d.ts +0 -7
- package/dist/components/date-selector/index.d.ts.map +0 -1
- package/dist/components/date-selector/index.js +0 -5
- package/dist/components/date-selector/use-date-selector.d.ts.map +0 -1
- /package/dist/{components → blocks}/date-selector/date-selector-context.d.ts +0 -0
- /package/dist/{components → blocks}/date-selector/date-selector-context.js +0 -0
|
@@ -1,8 +1,113 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
2
|
import { Filters } from '.';
|
|
3
|
-
declare const meta:
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof Filters;
|
|
6
|
+
tags: string[];
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: string;
|
|
9
|
+
};
|
|
10
|
+
args: {
|
|
11
|
+
className: string;
|
|
12
|
+
size: "sm";
|
|
13
|
+
radius: "default";
|
|
14
|
+
showSearchInput: true;
|
|
15
|
+
submenuSearchMinOptions: number;
|
|
16
|
+
allowMultiple: true;
|
|
17
|
+
menuPopupClassName: string;
|
|
18
|
+
collapsibleAddFilterGroups: false;
|
|
19
|
+
defaultAddFilterGroupsCollapsed: false;
|
|
20
|
+
nestedAddFilterGroups: false;
|
|
21
|
+
collapseAddButton: false;
|
|
22
|
+
enableShortcut: false;
|
|
23
|
+
shortcutKey: string;
|
|
24
|
+
shortcutLabel: string;
|
|
25
|
+
};
|
|
26
|
+
argTypes: {
|
|
27
|
+
className: {
|
|
28
|
+
readonly control: "text";
|
|
29
|
+
readonly description: "Optional class on the filters container.";
|
|
30
|
+
};
|
|
31
|
+
size: {
|
|
32
|
+
readonly control: "inline-radio";
|
|
33
|
+
readonly options: ("default" | "sm" | "lg")[];
|
|
34
|
+
readonly description: "Control density for filter rows and add-filter trigger.";
|
|
35
|
+
};
|
|
36
|
+
radius: {
|
|
37
|
+
readonly control: "inline-radio";
|
|
38
|
+
readonly options: ("default" | "full")[];
|
|
39
|
+
readonly description: "Corner radius for each filter row’s grouped controls (label, operator, value, remove).";
|
|
40
|
+
};
|
|
41
|
+
showSearchInput: {
|
|
42
|
+
readonly control: "boolean";
|
|
43
|
+
readonly description: "Search field at the top of the add-filter menu.";
|
|
44
|
+
};
|
|
45
|
+
submenuSearchMinOptions: {
|
|
46
|
+
readonly control: {
|
|
47
|
+
readonly type: "number";
|
|
48
|
+
readonly min: 0;
|
|
49
|
+
readonly max: 100;
|
|
50
|
+
readonly step: 1;
|
|
51
|
+
};
|
|
52
|
+
readonly description: "Minimum options before search in value popovers and add-filter option submenus (0 = always when searchable).";
|
|
53
|
+
};
|
|
54
|
+
allowMultiple: {
|
|
55
|
+
readonly control: "boolean";
|
|
56
|
+
readonly description: "Allow more than one filter per field key.";
|
|
57
|
+
};
|
|
58
|
+
menuPopupClassName: {
|
|
59
|
+
readonly control: "text";
|
|
60
|
+
readonly description: "Extra classes on the add-filter dropdown surface.";
|
|
61
|
+
};
|
|
62
|
+
collapsibleAddFilterGroups: {
|
|
63
|
+
readonly control: "boolean";
|
|
64
|
+
readonly description: "Grouped config only: accordion headers per section (ignored when **Nested** mode is used in grouped story).";
|
|
65
|
+
};
|
|
66
|
+
defaultAddFilterGroupsCollapsed: {
|
|
67
|
+
readonly control: "boolean";
|
|
68
|
+
readonly description: "Grouped + accordion: start every section collapsed when the menu opens.";
|
|
69
|
+
};
|
|
70
|
+
nestedAddFilterGroups: {
|
|
71
|
+
readonly control: "boolean";
|
|
72
|
+
readonly description: "Grouped config only: category rows open a side submenu (ignored when grouped story uses **Grouped menu mode**).";
|
|
73
|
+
};
|
|
74
|
+
collapseAddButton: {
|
|
75
|
+
readonly control: "boolean";
|
|
76
|
+
readonly description: "Collapse the add-filter control into a compact trigger when filters exist.";
|
|
77
|
+
};
|
|
78
|
+
enableShortcut: {
|
|
79
|
+
readonly control: "boolean";
|
|
80
|
+
readonly description: "Open add-filter menu with a global key (see shortcut keys).";
|
|
81
|
+
};
|
|
82
|
+
shortcutKey: {
|
|
83
|
+
readonly control: "text";
|
|
84
|
+
readonly description: "Key to listen for when **Enable shortcut** is on (e.g. `f`).";
|
|
85
|
+
};
|
|
86
|
+
shortcutLabel: {
|
|
87
|
+
readonly control: "text";
|
|
88
|
+
readonly description: "Label shown in the add-filter menu for the shortcut (e.g. `F`).";
|
|
89
|
+
};
|
|
90
|
+
filters: {
|
|
91
|
+
readonly control: false;
|
|
92
|
+
};
|
|
93
|
+
fields: {
|
|
94
|
+
readonly control: false;
|
|
95
|
+
};
|
|
96
|
+
onChange: {
|
|
97
|
+
readonly control: false;
|
|
98
|
+
};
|
|
99
|
+
trigger: {
|
|
100
|
+
readonly control: false;
|
|
101
|
+
};
|
|
102
|
+
i18n: {
|
|
103
|
+
readonly control: false;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
};
|
|
4
107
|
export default meta;
|
|
5
108
|
type Story = StoryObj<typeof meta>;
|
|
6
109
|
export declare const Default: Story;
|
|
7
110
|
export declare const WithOneFilter: Story;
|
|
111
|
+
export declare const GroupedFieldsAndSearch: Story;
|
|
112
|
+
export declare const DateMetricAdjRevpar: Story;
|
|
8
113
|
//# sourceMappingURL=filters.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.stories.d.ts","sourceRoot":"","sources":["../../../src/components/filters/filters.stories.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"filters.stories.d.ts","sourceRoot":"","sources":["../../../src/components/filters/filters.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQvD,OAAO,EAAkH,OAAO,EAAE,MAAM,GAAG,CAAC;AA0R5I,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BsB,CAAC;AAEjC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAEJ,KAAK,CAAC;AAEtB,eAAO,MAAM,aAAa,EAEV,KAAK,CAAC;AA0DtB,eAAO,MAAM,sBAAsB,EA4CnB,KAAK,CAAC;AA8CtB,eAAO,MAAM,mBAAmB,EAgChB,KAAK,CAAC"}
|
|
@@ -1,48 +1,383 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useState } from 'react';
|
|
4
|
-
import {
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo, useState } from 'react';
|
|
4
|
+
import { useTranslation } from 'react-i18next';
|
|
5
|
+
import { Activity, BarChart3, Filter as FilterIcon, Home, Tag, Users } from 'lucide-react';
|
|
6
|
+
import { buildDateSelectorI18nFromT, DATE_SELECTOR_NAMESPACE } from '../../blocks/date-selector';
|
|
5
7
|
import { Button } from '../button';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
8
|
+
import { buildFilterI18nFromT, FILTERS_NAMESPACE } from './filters-i18n.shared';
|
|
9
|
+
import { createFilter, DEFAULT_SUBMENU_SEARCH_MIN_OPTIONS, Filters } from '.';
|
|
10
|
+
const teamMemberOptions = [
|
|
11
|
+
{ value: 'alex', label: 'Alex Johnson' },
|
|
12
|
+
{ value: 'jamie', label: 'Jamie Lee' },
|
|
13
|
+
{ value: 'sam', label: 'Sam Rivera' },
|
|
14
|
+
{ value: 'taylor', label: 'Taylor Chen' },
|
|
15
|
+
{ value: 'jordan', label: 'Jordan Patel' },
|
|
16
|
+
{ value: 'casey', label: 'Casey Morgan' },
|
|
17
|
+
{ value: 'riley', label: 'Riley Brooks' },
|
|
18
|
+
{ value: 'quinn', label: 'Quinn Foster' },
|
|
19
|
+
{ value: 'avery', label: 'Avery Scott' },
|
|
20
|
+
{ value: 'morgan', label: 'Morgan Wells' },
|
|
21
|
+
];
|
|
22
|
+
function useFiltersStoryLocale() {
|
|
23
|
+
const { t, i18n } = useTranslation(FILTERS_NAMESPACE);
|
|
24
|
+
const filterI18n = useMemo(() => buildFilterI18nFromT(t, i18n.language), [t, i18n.language]);
|
|
25
|
+
const dateSelectorI18n = useMemo(() => {
|
|
26
|
+
const dateT = i18n.getFixedT(i18n.language, DATE_SELECTOR_NAMESPACE);
|
|
27
|
+
return buildDateSelectorI18nFromT(dateT);
|
|
28
|
+
}, [i18n]);
|
|
29
|
+
return { t, i18n, filterI18n, dateSelectorI18n };
|
|
30
|
+
}
|
|
31
|
+
function buildDemoFields(t) {
|
|
32
|
+
return [
|
|
33
|
+
{
|
|
34
|
+
key: 'status',
|
|
35
|
+
label: t('story.fields.status', { defaultValue: 'Status' }),
|
|
36
|
+
type: 'select',
|
|
37
|
+
icon: _jsx(FilterIcon, { className: "size-4" }),
|
|
38
|
+
options: [
|
|
39
|
+
{ value: 'active', label: t('story.options.active', { defaultValue: 'Active' }) },
|
|
40
|
+
{ value: 'draft', label: t('story.options.draft', { defaultValue: 'Draft' }) },
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'name',
|
|
45
|
+
label: t('story.fields.name', { defaultValue: 'Name' }),
|
|
46
|
+
type: 'text',
|
|
47
|
+
placeholder: t('story.namePlaceholder', { defaultValue: 'Contains…' }),
|
|
48
|
+
icon: _jsx(Tag, { className: "size-4" }),
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
function buildGroupedFieldsWithSearch(t, dateSelectorI18n, i18n) {
|
|
53
|
+
return [
|
|
54
|
+
{
|
|
55
|
+
group: t('story.groups.listingFeatures', { defaultValue: 'Listing Features' }),
|
|
56
|
+
fields: [
|
|
57
|
+
{
|
|
58
|
+
key: 'propertyType',
|
|
59
|
+
label: t('story.fields.propertyType', { defaultValue: 'Property Type' }),
|
|
60
|
+
type: 'multiselect',
|
|
61
|
+
icon: _jsx(Home, { className: "size-4" }),
|
|
62
|
+
options: [
|
|
63
|
+
{ value: 'house', label: t('story.options.house', { defaultValue: 'House' }) },
|
|
64
|
+
{ value: 'condo', label: t('story.options.condo', { defaultValue: 'Condo' }) },
|
|
65
|
+
{ value: 'townhome', label: t('story.options.townhome', { defaultValue: 'Townhome' }) },
|
|
66
|
+
{ value: 'land', label: t('story.options.land', { defaultValue: 'Land' }) },
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
key: 'hasPool',
|
|
71
|
+
label: t('story.fields.hasPool', { defaultValue: 'Has Pool' }),
|
|
72
|
+
type: 'select',
|
|
73
|
+
icon: _jsx(Home, { className: "size-4" }),
|
|
74
|
+
options: [
|
|
75
|
+
{ value: 'yes', label: t('story.options.yes', { defaultValue: 'Yes' }) },
|
|
76
|
+
{ value: 'no', label: t('story.options.no', { defaultValue: 'No' }) },
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
group: t('story.groups.listingStatus', { defaultValue: 'Listing Status' }),
|
|
83
|
+
fields: [
|
|
84
|
+
{
|
|
85
|
+
key: 'listingStatus',
|
|
86
|
+
label: t('story.fields.listingStatus', { defaultValue: 'Listing Status' }),
|
|
87
|
+
type: 'multiselect',
|
|
88
|
+
icon: _jsx(Activity, { className: "size-4" }),
|
|
89
|
+
options: [
|
|
90
|
+
{ value: 'active', label: t('story.options.active', { defaultValue: 'Active' }) },
|
|
91
|
+
{ value: 'pending', label: t('story.options.pending', { defaultValue: 'Pending' }) },
|
|
92
|
+
{ value: 'sold', label: t('story.options.sold', { defaultValue: 'Sold' }) },
|
|
93
|
+
{ value: 'withdrawn', label: t('story.options.withdrawn', { defaultValue: 'Withdrawn' }) },
|
|
94
|
+
{ value: 'expired', label: t('story.options.expired', { defaultValue: 'Expired' }) },
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
group: t('story.groups.teamAccess', { defaultValue: 'Team & Access' }),
|
|
101
|
+
fields: [
|
|
102
|
+
{
|
|
103
|
+
key: 'teamMember',
|
|
104
|
+
label: t('story.fields.teamMember', { defaultValue: 'Team Member' }),
|
|
105
|
+
type: 'multiselect',
|
|
106
|
+
icon: _jsx(Users, { className: "size-4" }),
|
|
107
|
+
options: teamMemberOptions,
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
key: 'yourAccess',
|
|
111
|
+
label: t('story.fields.yourAccess', { defaultValue: 'Your Access' }),
|
|
112
|
+
type: 'select',
|
|
113
|
+
icon: _jsx(Users, { className: "size-4" }),
|
|
114
|
+
options: [
|
|
115
|
+
{ value: 'owner', label: t('story.options.owner', { defaultValue: 'Owner' }) },
|
|
116
|
+
{ value: 'editor', label: t('story.options.editor', { defaultValue: 'Editor' }) },
|
|
117
|
+
{ value: 'viewer', label: t('story.options.viewer', { defaultValue: 'Viewer' }) },
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
key: 'listingAdmin',
|
|
122
|
+
label: t('story.fields.listingAdmin', { defaultValue: 'Admin of Listing' }),
|
|
123
|
+
type: 'select',
|
|
124
|
+
icon: _jsx(Users, { className: "size-4" }),
|
|
125
|
+
options: [
|
|
126
|
+
{ value: 'me', label: t('story.options.me', { defaultValue: 'Me' }) },
|
|
127
|
+
{ value: 'broker', label: t('story.options.broker', { defaultValue: 'Broker' }) },
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
group: t('story.groups.listingPerformance', { defaultValue: 'Listing Performance' }),
|
|
134
|
+
fields: [
|
|
135
|
+
{
|
|
136
|
+
key: 'adjRevpar',
|
|
137
|
+
label: t('story.fields.adjRevpar', { defaultValue: 'Adj. RevPAR' }),
|
|
138
|
+
type: 'date_metric',
|
|
139
|
+
icon: _jsx(BarChart3, { className: "size-4" }),
|
|
140
|
+
dateMetricProps: {
|
|
141
|
+
showRollingPresets: true,
|
|
142
|
+
i18nInstance: i18n,
|
|
143
|
+
i18n: dateSelectorI18n,
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
key: 'performanceTier',
|
|
148
|
+
label: t('story.fields.performanceTier', { defaultValue: 'Performance Tier' }),
|
|
149
|
+
type: 'select',
|
|
150
|
+
icon: _jsx(BarChart3, { className: "size-4" }),
|
|
151
|
+
options: [
|
|
152
|
+
{ value: 'top', label: t('story.options.top', { defaultValue: 'Top quartile' }) },
|
|
153
|
+
{ value: 'mid', label: t('story.options.mid', { defaultValue: 'Mid' }) },
|
|
154
|
+
{ value: 'low', label: t('story.options.low', { defaultValue: 'Needs attention' }) },
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
},
|
|
159
|
+
];
|
|
160
|
+
}
|
|
161
|
+
const FILTER_PLAYGROUND_KEYS = [
|
|
162
|
+
'className',
|
|
163
|
+
'size',
|
|
164
|
+
'radius',
|
|
165
|
+
'showSearchInput',
|
|
166
|
+
'submenuSearchMinOptions',
|
|
167
|
+
'allowMultiple',
|
|
168
|
+
'menuPopupClassName',
|
|
169
|
+
'collapsibleAddFilterGroups',
|
|
170
|
+
'defaultAddFilterGroupsCollapsed',
|
|
171
|
+
'nestedAddFilterGroups',
|
|
172
|
+
'collapseAddButton',
|
|
173
|
+
'enableShortcut',
|
|
174
|
+
'shortcutKey',
|
|
175
|
+
'shortcutLabel',
|
|
25
176
|
];
|
|
26
|
-
function
|
|
177
|
+
function pickFiltersPlaygroundArgs(args) {
|
|
178
|
+
const src = args;
|
|
179
|
+
const out = {};
|
|
180
|
+
for (const key of FILTER_PLAYGROUND_KEYS) {
|
|
181
|
+
if (src[key] !== undefined) {
|
|
182
|
+
out[key] = src[key];
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return out;
|
|
186
|
+
}
|
|
187
|
+
/** `Filters` props that stay wired inside story hosts (not controllable). */
|
|
188
|
+
const filtersStoryReadonlyArgTypes = {
|
|
189
|
+
filters: { control: false },
|
|
190
|
+
fields: { control: false },
|
|
191
|
+
onChange: { control: false },
|
|
192
|
+
trigger: { control: false },
|
|
193
|
+
i18n: { control: false },
|
|
194
|
+
};
|
|
195
|
+
/** Shared Controls for `Filters` layout and add-menu behavior (use on stories that forward `args`). */
|
|
196
|
+
const filtersPlaygroundArgTypes = {
|
|
197
|
+
className: { control: 'text', description: 'Optional class on the filters container.' },
|
|
198
|
+
size: {
|
|
199
|
+
control: 'inline-radio',
|
|
200
|
+
options: ['sm', 'default', 'lg'],
|
|
201
|
+
description: 'Control density for filter rows and add-filter trigger.',
|
|
202
|
+
},
|
|
203
|
+
radius: {
|
|
204
|
+
control: 'inline-radio',
|
|
205
|
+
options: ['default', 'full'],
|
|
206
|
+
description: 'Corner radius for each filter row’s grouped controls (label, operator, value, remove).',
|
|
207
|
+
},
|
|
208
|
+
showSearchInput: { control: 'boolean', description: 'Search field at the top of the add-filter menu.' },
|
|
209
|
+
submenuSearchMinOptions: {
|
|
210
|
+
control: { type: 'number', min: 0, max: 100, step: 1 },
|
|
211
|
+
description: 'Minimum options before search in value popovers and add-filter option submenus (0 = always when searchable).',
|
|
212
|
+
},
|
|
213
|
+
allowMultiple: { control: 'boolean', description: 'Allow more than one filter per field key.' },
|
|
214
|
+
menuPopupClassName: { control: 'text', description: 'Extra classes on the add-filter dropdown surface.' },
|
|
215
|
+
collapsibleAddFilterGroups: {
|
|
216
|
+
control: 'boolean',
|
|
217
|
+
description: 'Grouped config only: accordion headers per section (ignored when **Nested** mode is used in grouped story).',
|
|
218
|
+
},
|
|
219
|
+
defaultAddFilterGroupsCollapsed: {
|
|
220
|
+
control: 'boolean',
|
|
221
|
+
description: 'Grouped + accordion: start every section collapsed when the menu opens.',
|
|
222
|
+
},
|
|
223
|
+
nestedAddFilterGroups: {
|
|
224
|
+
control: 'boolean',
|
|
225
|
+
description: 'Grouped config only: category rows open a side submenu (ignored when grouped story uses **Grouped menu mode**).',
|
|
226
|
+
},
|
|
227
|
+
collapseAddButton: { control: 'boolean', description: 'Collapse the add-filter control into a compact trigger when filters exist.' },
|
|
228
|
+
enableShortcut: { control: 'boolean', description: 'Open add-filter menu with a global key (see shortcut keys).' },
|
|
229
|
+
shortcutKey: { control: 'text', description: 'Key to listen for when **Enable shortcut** is on (e.g. `f`).' },
|
|
230
|
+
shortcutLabel: { control: 'text', description: 'Label shown in the add-filter menu for the shortcut (e.g. `F`).' },
|
|
231
|
+
};
|
|
232
|
+
function addFilterTriggerButtonLabel(size, label) {
|
|
233
|
+
const btnSize = size === 'sm' ? 'sm' : size === 'lg' ? 'lg' : 'default';
|
|
234
|
+
return (_jsx(Button, { variant: "outline", size: btnSize, children: label }));
|
|
235
|
+
}
|
|
236
|
+
function FiltersStoryHost(playground) {
|
|
27
237
|
const [filters, setFilters] = useState([]);
|
|
28
|
-
|
|
238
|
+
const { t, filterI18n } = useFiltersStoryLocale();
|
|
239
|
+
const fields = useMemo(() => buildDemoFields(t), [t]);
|
|
240
|
+
return (_jsx("div", { className: "flex min-h-32 min-w-[min(100%,28rem)] flex-wrap items-start gap-2 p-4", children: _jsx(Filters, { filters: filters, fields: fields, onChange: setFilters, i18n: filterI18n, trigger: addFilterTriggerButtonLabel(playground.size, filterI18n.addFilterTitle), ...playground }) }));
|
|
29
241
|
}
|
|
30
|
-
function
|
|
242
|
+
function FiltersWithInitialStateHost(playground) {
|
|
31
243
|
const [filters, setFilters] = useState(() => [createFilter('status', 'is', ['active'])]);
|
|
32
|
-
|
|
244
|
+
const { t, filterI18n } = useFiltersStoryLocale();
|
|
245
|
+
const fields = useMemo(() => buildDemoFields(t), [t]);
|
|
246
|
+
return (_jsx("div", { className: "flex min-h-32 min-w-[min(100%,28rem)] flex-wrap items-start gap-2 p-4", children: _jsx(Filters, { filters: filters, fields: fields, onChange: setFilters, i18n: filterI18n, trigger: addFilterTriggerButtonLabel(playground.size, filterI18n.addFilterTitle), ...playground }) }));
|
|
33
247
|
}
|
|
34
248
|
const meta = {
|
|
35
|
-
title: '
|
|
249
|
+
title: 'Blocks/Filters',
|
|
36
250
|
component: Filters,
|
|
37
251
|
tags: ['autodocs'],
|
|
38
252
|
parameters: {
|
|
39
253
|
layout: 'centered',
|
|
40
254
|
},
|
|
255
|
+
args: {
|
|
256
|
+
className: '',
|
|
257
|
+
size: 'sm',
|
|
258
|
+
radius: 'default',
|
|
259
|
+
showSearchInput: true,
|
|
260
|
+
submenuSearchMinOptions: DEFAULT_SUBMENU_SEARCH_MIN_OPTIONS,
|
|
261
|
+
allowMultiple: true,
|
|
262
|
+
menuPopupClassName: '',
|
|
263
|
+
collapsibleAddFilterGroups: false,
|
|
264
|
+
defaultAddFilterGroupsCollapsed: false,
|
|
265
|
+
nestedAddFilterGroups: false,
|
|
266
|
+
collapseAddButton: false,
|
|
267
|
+
enableShortcut: false,
|
|
268
|
+
shortcutKey: 'f',
|
|
269
|
+
shortcutLabel: 'F',
|
|
270
|
+
},
|
|
271
|
+
argTypes: {
|
|
272
|
+
...filtersStoryReadonlyArgTypes,
|
|
273
|
+
...filtersPlaygroundArgTypes,
|
|
274
|
+
},
|
|
41
275
|
};
|
|
42
276
|
export default meta;
|
|
43
277
|
export const Default = {
|
|
44
|
-
render: () => _jsx(FiltersStoryHost, {}),
|
|
278
|
+
render: (args) => _jsx(FiltersStoryHost, { ...pickFiltersPlaygroundArgs(args) }),
|
|
45
279
|
};
|
|
46
280
|
export const WithOneFilter = {
|
|
47
|
-
render: () => _jsx(
|
|
281
|
+
render: (args) => _jsx(FiltersWithInitialStateHost, { ...pickFiltersPlaygroundArgs(args) }),
|
|
282
|
+
};
|
|
283
|
+
function FiltersGroupedAndSearchHost(props) {
|
|
284
|
+
const [filters, setFilters] = useState([]);
|
|
285
|
+
const { groupedMenuMode, defaultAddFilterGroupsCollapsed, ...raw } = props;
|
|
286
|
+
const { nestedAddFilterGroups: _omitNested, collapsibleAddFilterGroups: _omitCollapsible, defaultAddFilterGroupsCollapsed: _omitDefaultCollapsed, ...playground } = pickFiltersPlaygroundArgs(raw);
|
|
287
|
+
const { t, i18n, filterI18n, dateSelectorI18n } = useFiltersStoryLocale();
|
|
288
|
+
const groupedFieldsWithSearch = useMemo(() => buildGroupedFieldsWithSearch(t, dateSelectorI18n, i18n), [t, dateSelectorI18n, i18n]);
|
|
289
|
+
const groupedI18n = useMemo(() => ({
|
|
290
|
+
...filterI18n,
|
|
291
|
+
searchFields: t('story.searchFieldsGrouped', { defaultValue: 'Filter by…' }),
|
|
292
|
+
}), [filterI18n, t]);
|
|
293
|
+
const nestedAddFilterGroups = groupedMenuMode === 'nested';
|
|
294
|
+
const collapsibleAddFilterGroups = groupedMenuMode === 'accordion';
|
|
295
|
+
return (_jsxs("div", { className: "flex min-h-32 min-w-[min(100%,28rem)] flex-col gap-4 p-4", children: [_jsx("div", { className: "flex flex-wrap items-start gap-2", children: _jsx(Filters, { filters: filters, fields: groupedFieldsWithSearch, onChange: setFilters, i18n: groupedI18n, ...playground, nestedAddFilterGroups: nestedAddFilterGroups, collapsibleAddFilterGroups: collapsibleAddFilterGroups, defaultAddFilterGroupsCollapsed: defaultAddFilterGroupsCollapsed, trigger: addFilterTriggerButtonLabel(playground.size, groupedI18n.addFilterTitle) }, `${groupedMenuMode}-${defaultAddFilterGroupsCollapsed}`) }), _jsx("p", { className: "text-xs text-muted-foreground", children: t('story.currentFiltersCaption', { defaultValue: 'Current filters:' }) }), _jsx("pre", { className: "max-h-80 max-w-full overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap", children: JSON.stringify(filters, null, 2) })] }));
|
|
296
|
+
}
|
|
297
|
+
export const GroupedFieldsAndSearch = {
|
|
298
|
+
args: {
|
|
299
|
+
groupedMenuMode: 'nested',
|
|
300
|
+
defaultAddFilterGroupsCollapsed: true,
|
|
301
|
+
},
|
|
302
|
+
argTypes: {
|
|
303
|
+
...filtersStoryReadonlyArgTypes,
|
|
304
|
+
...filtersPlaygroundArgTypes,
|
|
305
|
+
nestedAddFilterGroups: { control: false },
|
|
306
|
+
collapsibleAddFilterGroups: { control: false },
|
|
307
|
+
groupedMenuMode: {
|
|
308
|
+
name: 'Grouped menu mode',
|
|
309
|
+
control: 'inline-radio',
|
|
310
|
+
options: ['nested', 'accordion', 'flat'],
|
|
311
|
+
description: '**Nested** — category rows open a side submenu (hover or keyboard). **Accordion** — click section headers to expand/collapse. **Flat** — section labels only, all fields listed inline. Select/multiselect still use option submenus.',
|
|
312
|
+
},
|
|
313
|
+
defaultAddFilterGroupsCollapsed: {
|
|
314
|
+
name: 'Accordion: start collapsed',
|
|
315
|
+
control: 'boolean',
|
|
316
|
+
if: { arg: 'groupedMenuMode', eq: 'accordion' },
|
|
317
|
+
description: 'When mode is Accordion, start with every group collapsed each time the add-filter menu opens.',
|
|
318
|
+
},
|
|
319
|
+
},
|
|
320
|
+
render: (args) => {
|
|
321
|
+
const a = args;
|
|
322
|
+
return (_jsx(FiltersGroupedAndSearchHost, { ...pickFiltersPlaygroundArgs(a), groupedMenuMode: a.groupedMenuMode ?? 'nested', defaultAddFilterGroupsCollapsed: a.defaultAddFilterGroupsCollapsed ?? true }));
|
|
323
|
+
},
|
|
324
|
+
parameters: {
|
|
325
|
+
controls: {
|
|
326
|
+
sort: 'none',
|
|
327
|
+
},
|
|
328
|
+
docs: {
|
|
329
|
+
description: {
|
|
330
|
+
story: 'Grouped `FilterFieldsConfig` with section labels and search. Use **Grouped menu mode** in **Controls** to switch **Nested** (side submenus), **Accordion** (expand/collapse headers), or **Flat** (labels + inline fields). The **Accordion: start collapsed** control appears when mode is Accordion. Select and multiselect fields still open an options submenu. Use the Storybook **Locale** toolbar to switch languages.',
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
},
|
|
334
|
+
};
|
|
335
|
+
function FiltersDateMetricStoryHost(props) {
|
|
336
|
+
const [filters, setFilters] = useState([]);
|
|
337
|
+
const { rollingRangeDisplay, ...raw } = props;
|
|
338
|
+
const playground = pickFiltersPlaygroundArgs(raw);
|
|
339
|
+
const { t, i18n, filterI18n, dateSelectorI18n } = useFiltersStoryLocale();
|
|
340
|
+
const adjRevparOnlyFields = useMemo(() => [
|
|
341
|
+
{
|
|
342
|
+
key: 'adjRevpar',
|
|
343
|
+
label: t('story.fields.adjRevpar', { defaultValue: 'Adj. RevPAR' }),
|
|
344
|
+
type: 'date_metric',
|
|
345
|
+
icon: _jsx(BarChart3, { className: "size-4" }),
|
|
346
|
+
dateMetricProps: {
|
|
347
|
+
showRollingPresets: true,
|
|
348
|
+
showTwoMonths: true,
|
|
349
|
+
rollingRangeDisplay,
|
|
350
|
+
i18nInstance: i18n,
|
|
351
|
+
i18n: dateSelectorI18n,
|
|
352
|
+
},
|
|
353
|
+
},
|
|
354
|
+
], [rollingRangeDisplay, t, i18n, dateSelectorI18n]);
|
|
355
|
+
return (_jsx("div", { className: "flex min-h-32 min-w-[min(100%,28rem)] flex-wrap items-start gap-2 p-4", children: _jsx(Filters, { filters: filters, fields: adjRevparOnlyFields, onChange: setFilters, i18n: filterI18n, ...playground, trigger: addFilterTriggerButtonLabel(playground.size, filterI18n.addFilterTitle) }) }));
|
|
356
|
+
}
|
|
357
|
+
export const DateMetricAdjRevpar = {
|
|
358
|
+
args: {
|
|
359
|
+
rollingRangeDisplay: 'inline',
|
|
360
|
+
size: 'sm',
|
|
361
|
+
},
|
|
362
|
+
argTypes: {
|
|
363
|
+
...filtersStoryReadonlyArgTypes,
|
|
364
|
+
...filtersPlaygroundArgTypes,
|
|
365
|
+
rollingRangeDisplay: {
|
|
366
|
+
name: 'Rolling range display',
|
|
367
|
+
control: 'inline-radio',
|
|
368
|
+
options: ['inline', 'tooltip'],
|
|
369
|
+
description: 'Passed through field config as `dateMetricProps.rollingRangeDisplay`. Inline shows calendar detail on the trigger; Tooltip shows a short rolling phrase with detail on hover.',
|
|
370
|
+
},
|
|
371
|
+
},
|
|
372
|
+
render: (args) => (_jsx(FiltersDateMetricStoryHost, { rollingRangeDisplay: args.rollingRangeDisplay ?? 'inline', ...pickFiltersPlaygroundArgs(args) })),
|
|
373
|
+
parameters: {
|
|
374
|
+
controls: {
|
|
375
|
+
sort: 'none',
|
|
376
|
+
},
|
|
377
|
+
docs: {
|
|
378
|
+
description: {
|
|
379
|
+
story: '`type: "date_metric"`: date range uses Next/Last submenus plus Custom (full `DateSelector` in a dialog). Value range operators (Any value, greater than, less than, between). Values live in `filter.values[0]` as `DateMetricFilterPayload`. Use the **Rolling range display** control at the top of the **Controls** panel to set `dateMetricProps.rollingRangeDisplay` — tooltip mode shows the short rolling phrase on the trigger and the resolved calendar detail on hover. The Storybook **Locale** toolbar updates filter and date strings.',
|
|
380
|
+
},
|
|
381
|
+
},
|
|
382
|
+
},
|
|
48
383
|
};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export * from './filters-defaults';
|
|
2
|
+
export * from './filters-i18n.shared';
|
|
2
3
|
export * from './filters-types';
|
|
3
4
|
export * from './filters-utils';
|
|
4
|
-
export {
|
|
5
|
+
export { dateSegmentLabelForBar, FilterDateMetricBarPeriodSegments, FilterDateMetricBarValueSegment } from './filter-date-metric-value';
|
|
6
|
+
export { DEFAULT_SUBMENU_SEARCH_MIN_OPTIONS, Filters, FiltersContent } from './filters';
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/filters/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/filters/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,iCAAiC,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AACxI,OAAO,EAAE,kCAAkC,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * from './filters-defaults';
|
|
2
|
+
export * from './filters-i18n.shared';
|
|
2
3
|
export * from './filters-types';
|
|
3
4
|
export * from './filters-utils';
|
|
4
|
-
export {
|
|
5
|
+
export { dateSegmentLabelForBar, FilterDateMetricBarPeriodSegments, FilterDateMetricBarValueSegment } from './filter-date-metric-value';
|
|
6
|
+
export { DEFAULT_SUBMENU_SEARCH_MIN_OPTIONS, Filters, FiltersContent } from './filters';
|
|
@@ -25,7 +25,7 @@ import { type VariantProps } from 'class-variance-authority';
|
|
|
25
25
|
*/
|
|
26
26
|
declare const frameVariants: (props?: ({
|
|
27
27
|
variant?: "default" | "ghost" | "inverse" | null | undefined;
|
|
28
|
-
spacing?: "default" | "
|
|
28
|
+
spacing?: "default" | "xs" | "sm" | "lg" | null | undefined;
|
|
29
29
|
stacked?: boolean | null | undefined;
|
|
30
30
|
dense?: boolean | null | undefined;
|
|
31
31
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle } from '.';
|
|
3
3
|
const meta = {
|
|
4
|
-
title: '
|
|
4
|
+
title: 'Components/Frame',
|
|
5
5
|
component: Frame,
|
|
6
6
|
tags: ['autodocs'],
|
|
7
7
|
parameters: {
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Button } from '../button';
|
|
3
3
|
import { HoverCard, HoverCardContent, HoverCardTrigger } from './hover-card';
|
|
4
4
|
const meta = {
|
|
5
|
-
title: '
|
|
5
|
+
title: 'Components/HoverCard',
|
|
6
6
|
component: HoverCard,
|
|
7
7
|
tags: ['autodocs'],
|
|
8
8
|
parameters: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
|
package/dist/components/index.js
CHANGED
|
@@ -6,13 +6,13 @@ import type { TextareaProps } from '../textarea';
|
|
|
6
6
|
/** Props for `InputGroup`. */
|
|
7
7
|
export type InputGroupProps = React.ComponentProps<'div'>;
|
|
8
8
|
declare const inputGroupAddonVariants: (props?: ({
|
|
9
|
-
align?: "inline-
|
|
9
|
+
align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
|
|
10
10
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
11
|
export declare const inputGroupAddonAlignKeys: readonly ["inline-start", "inline-end", "block-start", "block-end"];
|
|
12
12
|
/** Props for `InputGroupAddon`. */
|
|
13
13
|
export type InputGroupAddonProps = React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>;
|
|
14
14
|
declare const inputGroupButtonVariants: (props?: ({
|
|
15
|
-
size?: "
|
|
15
|
+
size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
|
|
16
16
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
17
17
|
export declare const inputGroupButtonSizeKeys: readonly ["xs", "sm", "icon-xs", "icon-sm"];
|
|
18
18
|
/** Props for `InputGroupButton` (ghost button sized for use inside a group). */
|