@bloomreach/react-banana-ui 1.32.2 → 1.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +229 -50
  2. package/dist/bloomreach-react-banana-ui.es.js +12407 -11628
  3. package/dist/bloomreach-react-banana-ui.es.js.map +1 -1
  4. package/dist/bloomreach-react-banana-ui.umd.js +18 -43
  5. package/dist/bloomreach-react-banana-ui.umd.js.map +1 -1
  6. package/dist/components/data-display/actions-container/actions-container.types.d.ts +2 -2
  7. package/dist/components/data-display/badge/badge.types.d.ts +2 -2
  8. package/dist/components/data-display/description/description.types.d.ts +2 -2
  9. package/dist/components/data-display/header/header.types.d.ts +2 -2
  10. package/dist/components/data-display/index.d.ts +1 -11
  11. package/dist/components/data-display/internal.d.ts +1 -1
  12. package/dist/components/data-display/table/index.d.ts +8 -2
  13. package/dist/components/data-display/table/table/index.d.ts +2 -0
  14. package/dist/components/data-display/tags/index.d.ts +4 -0
  15. package/dist/components/data-display/{tag → tags/tag}/tag.types.d.ts +2 -2
  16. package/dist/components/data-display/{tag-group → tags/tag-group}/tag-group.types.d.ts +2 -2
  17. package/dist/components/date/date-range-quick-selections/date-range-quick-selections.d.ts +9 -0
  18. package/dist/components/date/date-range-quick-selections/date-range-quick-selections.types.d.ts +25 -0
  19. package/dist/components/date/date-range-quick-selections/index.d.ts +2 -0
  20. package/dist/components/date/date-time-picker/date-time-picker.stories.d.ts +6 -0
  21. package/dist/components/date/date-time-picker/date-time-picker.types.d.ts +23 -1
  22. package/dist/components/date/date-time-range-picker/date-time-range-picker.stories.d.ts +11 -0
  23. package/dist/components/date/date-time-range-picker/date-time-range-picker.types.d.ts +86 -1
  24. package/dist/components/date/date-time-range-picker/index.d.ts +1 -0
  25. package/dist/components/dropdowns/menu/menu.stories.d.ts +9 -1
  26. package/dist/components/inputs/autocomplete/autocomplete.types.d.ts +8 -1
  27. package/dist/components/inputs/autocomplete-field/autocomplete-field.d.ts +26 -0
  28. package/dist/components/inputs/autocomplete-field/autocomplete-field.qa.stories.d.ts +34 -0
  29. package/dist/components/inputs/autocomplete-field/autocomplete-field.stories.d.ts +43 -0
  30. package/dist/components/inputs/autocomplete-field/autocomplete-field.types.d.ts +34 -0
  31. package/dist/components/inputs/autocomplete-field/index.d.ts +2 -0
  32. package/dist/components/inputs/base-field/base-field.types.d.ts +4 -0
  33. package/dist/components/inputs/index.d.ts +1 -0
  34. package/dist/components/inputs/input-field/input-field.stories.d.ts +1 -0
  35. package/dist/components/inputs/internal.d.ts +1 -0
  36. package/dist/components/inputs/select-field/select-field.stories.d.ts +1 -0
  37. package/dist/components/inputs/text-field/text-field.stories.d.ts +1 -0
  38. package/dist/components/lists/listbox-item/listbox-item.types.d.ts +9 -1
  39. package/dist/components/lists/listbox-separator/index.d.ts +2 -0
  40. package/dist/components/lists/listbox-separator/listbox-separator.d.ts +24 -0
  41. package/dist/components/lists/listbox-separator/listbox-separator.types.d.ts +6 -0
  42. package/dist/components/popovers/tooltip/tooltip.qa.stories.d.ts +8 -2
  43. package/dist/components/popovers/tooltip/tooltip.stories.d.ts +43 -13
  44. package/dist/components/popovers/tooltip/tooltip.types.d.ts +6 -0
  45. package/dist/react-banana-ui.css +1 -1
  46. package/dist/utils/date-range-presets.d.ts +144 -0
  47. package/dist/utils/hooks/index.d.ts +1 -0
  48. package/dist/utils/hooks/use-sync-max-height.d.ts +8 -0
  49. package/dist/utils/index.d.ts +2 -0
  50. package/dist/utils/use-id.d.ts +39 -0
  51. package/package.json +42 -42
  52. package/dist/components/dropdowns/menu/menu/menu.stories.d.ts +0 -6
  53. package/dist/components/dropdowns/menu/menu-button/menu-button.stories.d.ts +0 -6
  54. package/dist/components/dropdowns/menu/menu-content/menu-content.stories.d.ts +0 -10
  55. package/dist/components/dropdowns/menu/menu-group/menu-group.stories.d.ts +0 -6
  56. package/dist/components/dropdowns/menu/menu-group-label/menu-group-label.stories.d.ts +0 -6
  57. package/dist/components/dropdowns/menu/menu-item/menu-item.stories.d.ts +0 -6
  58. package/dist/components/dropdowns/menu/menu-separator/menu-separator.stories.d.ts +0 -6
  59. package/dist/components/inputs/base-field/generate-field-id.d.ts +0 -4
  60. /package/dist/components/data-display/table/{table-context.d.ts → table/table-context.d.ts} +0 -0
  61. /package/dist/components/data-display/table/{table-section-context.d.ts → table/table-section-context.d.ts} +0 -0
  62. /package/dist/components/data-display/table/{table.d.ts → table/table.d.ts} +0 -0
  63. /package/dist/components/data-display/table/{table.qa.stories.d.ts → table/table.qa.stories.d.ts} +0 -0
  64. /package/dist/components/data-display/table/{table.stories.d.ts → table/table.stories.d.ts} +0 -0
  65. /package/dist/components/data-display/table/{table.types.d.ts → table/table.types.d.ts} +0 -0
  66. /package/dist/components/data-display/{table-body → table/table-body}/index.d.ts +0 -0
  67. /package/dist/components/data-display/{table-body → table/table-body}/table-body.d.ts +0 -0
  68. /package/dist/components/data-display/{table-body → table/table-body}/table-body.types.d.ts +0 -0
  69. /package/dist/components/data-display/{table-cell → table/table-cell}/index.d.ts +0 -0
  70. /package/dist/components/data-display/{table-cell → table/table-cell}/table-cell.d.ts +0 -0
  71. /package/dist/components/data-display/{table-cell → table/table-cell}/table-cell.types.d.ts +0 -0
  72. /package/dist/components/data-display/{table-cell-action → table/table-cell-action}/index.d.ts +0 -0
  73. /package/dist/components/data-display/{table-cell-action → table/table-cell-action}/table-cell-action.d.ts +0 -0
  74. /package/dist/components/data-display/{table-cell-action → table/table-cell-action}/table-cell-action.types.d.ts +0 -0
  75. /package/dist/components/data-display/{table-foot → table/table-foot}/index.d.ts +0 -0
  76. /package/dist/components/data-display/{table-foot → table/table-foot}/table-foot.d.ts +0 -0
  77. /package/dist/components/data-display/{table-foot → table/table-foot}/table-foot.types.d.ts +0 -0
  78. /package/dist/components/data-display/{table-head → table/table-head}/index.d.ts +0 -0
  79. /package/dist/components/data-display/{table-head → table/table-head}/table-head.d.ts +0 -0
  80. /package/dist/components/data-display/{table-head → table/table-head}/table-head.types.d.ts +0 -0
  81. /package/dist/components/data-display/{table-row → table/table-row}/index.d.ts +0 -0
  82. /package/dist/components/data-display/{table-row → table/table-row}/table-row-context.d.ts +0 -0
  83. /package/dist/components/data-display/{table-row → table/table-row}/table-row.d.ts +0 -0
  84. /package/dist/components/data-display/{table-row → table/table-row}/table-row.types.d.ts +0 -0
  85. /package/dist/components/data-display/{table-sort-label → table/table-sort-label}/index.d.ts +0 -0
  86. /package/dist/components/data-display/{table-sort-label → table/table-sort-label}/table-sort-label.d.ts +0 -0
  87. /package/dist/components/data-display/{table-sort-label → table/table-sort-label}/table-sort-label.types.d.ts +0 -0
  88. /package/dist/components/data-display/{asset-tag → tags/asset-tag}/asset-tag.d.ts +0 -0
  89. /package/dist/components/data-display/{asset-tag → tags/asset-tag}/asset-tag.qa.stories.d.ts +0 -0
  90. /package/dist/components/data-display/{asset-tag → tags/asset-tag}/asset-tag.stories.d.ts +0 -0
  91. /package/dist/components/data-display/{asset-tag → tags/asset-tag}/asset-tag.types.d.ts +0 -0
  92. /package/dist/components/data-display/{asset-tag → tags/asset-tag}/index.d.ts +0 -0
  93. /package/dist/components/data-display/{filter-tag → tags/filter-tag}/filter-tag.d.ts +0 -0
  94. /package/dist/components/data-display/{filter-tag → tags/filter-tag}/filter-tag.qa.stories.d.ts +0 -0
  95. /package/dist/components/data-display/{filter-tag → tags/filter-tag}/filter-tag.stories.d.ts +0 -0
  96. /package/dist/components/data-display/{filter-tag → tags/filter-tag}/filter-tag.types.d.ts +0 -0
  97. /package/dist/components/data-display/{filter-tag → tags/filter-tag}/index.d.ts +0 -0
  98. /package/dist/components/data-display/{input-tag → tags/input-tag}/index.d.ts +0 -0
  99. /package/dist/components/data-display/{input-tag → tags/input-tag}/input-tag.d.ts +0 -0
  100. /package/dist/components/data-display/{input-tag → tags/input-tag}/input-tag.qa.stories.d.ts +0 -0
  101. /package/dist/components/data-display/{input-tag → tags/input-tag}/input-tag.stories.d.ts +0 -0
  102. /package/dist/components/data-display/{input-tag → tags/input-tag}/input-tag.types.d.ts +0 -0
  103. /package/dist/components/data-display/{tag → tags/tag}/index.d.ts +0 -0
  104. /package/dist/components/data-display/{tag → tags/tag}/tag.d.ts +0 -0
  105. /package/dist/components/data-display/{tag-group → tags/tag-group}/index.d.ts +0 -0
  106. /package/dist/components/data-display/{tag-group → tags/tag-group}/tag-group.d.ts +0 -0
  107. /package/dist/components/data-display/{tag-group → tags/tag-group}/tag-group.qa.stories.d.ts +0 -0
  108. /package/dist/components/data-display/{tag-group → tags/tag-group}/tag-group.stories.d.ts +0 -0
@@ -0,0 +1,144 @@
1
+ import { DateRangeValue } from './types/date.types';
2
+ /**
3
+ * Time unit types for date range calculations
4
+ */
5
+ export type TimeUnit = 'day' | 'month' | 'quarter' | 'week' | 'year';
6
+ /**
7
+ * Week type for start of week calculations
8
+ */
9
+ export type WeekStartDay = 'monday' | 'sunday';
10
+ /**
11
+ * Configuration options for date range presets
12
+ */
13
+ export interface DateRangeConfig {
14
+ /**
15
+ * First month of fiscal year (0-11, default: 0 for January)
16
+ */
17
+ fiscalYearStartMonth?: number;
18
+ /**
19
+ * First day of the week (default: 'sunday')
20
+ */
21
+ weekStartsOn?: WeekStartDay;
22
+ }
23
+ /**
24
+ * Configure date range preset behavior
25
+ */
26
+ export declare function configureDateRangePresets(options: DateRangeConfig): void;
27
+ /**
28
+ * Creates a date range for a relative period (e.g., "this month", "last week", "next year")
29
+ *
30
+ * @param unit - The time unit (day, week, month, quarter, year)
31
+ * @param offset - Offset from current period (0 = this, -1 = last, 1 = next)
32
+ * @returns A function that returns the date range
33
+ *
34
+ * @example
35
+ * createRelativePeriod('month', 0) // This month
36
+ * createRelativePeriod('week', -1) // Last week
37
+ * createRelativePeriod('year', 1) // Next year
38
+ */
39
+ export declare function createRelativePeriod(unit: TimeUnit, offset?: number): () => DateRangeValue;
40
+ /**
41
+ * Creates a rolling date range (e.g., "last 7 days", "next 30 days")
42
+ *
43
+ * @param count - Number of units
44
+ * @param unit - The time unit (day, week, month, year)
45
+ * @param direction - 'past' for last N units, 'future' for next N units
46
+ * @returns A function that returns the date range
47
+ *
48
+ * @example
49
+ * createRollingPeriod(7, 'day', 'past') // Last 7 days
50
+ * createRollingPeriod(3, 'month', 'past') // Last 3 months
51
+ * createRollingPeriod(30, 'day', 'future') // Next 30 days
52
+ */
53
+ export declare function createRollingPeriod(count: number, unit: TimeUnit, direction?: 'future' | 'past'): () => DateRangeValue;
54
+ /**
55
+ * Creates a "period to date" range (e.g., "month to date", "year to date")
56
+ *
57
+ * @param unit - The time unit (week, month, quarter, year)
58
+ * @returns A function that returns the date range from start of period to now
59
+ *
60
+ * @example
61
+ * createPeriodToDate('month') // Month to date
62
+ * createPeriodToDate('year') // Year to date
63
+ * createPeriodToDate('quarter') // Quarter to date
64
+ */
65
+ export declare function createPeriodToDate(unit: Exclude<TimeUnit, 'day'>): () => DateRangeValue;
66
+ /**
67
+ * Creates a date range for a specific absolute period
68
+ *
69
+ * @param year - The year
70
+ * @param unit - The time unit
71
+ * @param period - The period number (month: 0-11, quarter: 1-4, week: 1-53)
72
+ * @returns A function that returns the date range
73
+ *
74
+ * @example
75
+ * createSpecificPeriod(2024, 'year') // Entire year 2024
76
+ * createSpecificPeriod(2024, 'quarter', 2) // Q2 2024
77
+ * createSpecificPeriod(2024, 'month', 5) // June 2024 (month 5)
78
+ */
79
+ export declare function createSpecificPeriod(year: number, unit: TimeUnit, period?: number): () => DateRangeValue;
80
+ /**
81
+ * Creates a custom date range between two specific dates
82
+ *
83
+ * @param startDate - Start date
84
+ * @param endDate - End date
85
+ * @returns A function that returns the date range
86
+ *
87
+ * @example
88
+ * createCustomRange(new Date('2024-01-01'), new Date('2024-12-31'))
89
+ */
90
+ export declare function createCustomRange(startDate: Date, endDate: Date): () => DateRangeValue;
91
+ /**
92
+ * Creates a fiscal year date range
93
+ *
94
+ * @param year - The fiscal year
95
+ * @param startMonth - Starting month of fiscal year (0-11, defaults to configured value)
96
+ * @returns A function that returns the date range
97
+ *
98
+ * @example
99
+ * createFiscalYear(2024) // Uses configured fiscal year start
100
+ * createFiscalYear(2024, 3) // Fiscal year starting in April
101
+ */
102
+ export declare function createFiscalYear(year: number, startMonth?: number): () => DateRangeValue;
103
+ /**
104
+ * Common date range preset functions using the builder API
105
+ */
106
+ export declare const dateRangePresets: {
107
+ allTime: () => DateRangeValue;
108
+ last2Weeks: () => DateRangeValue;
109
+ last2Years: () => DateRangeValue;
110
+ last3Months: () => DateRangeValue;
111
+ last6Months: () => DateRangeValue;
112
+ last7Days: () => DateRangeValue;
113
+ last12Months: () => DateRangeValue;
114
+ last14Days: () => DateRangeValue;
115
+ last30Days: () => DateRangeValue;
116
+ last60Days: () => DateRangeValue;
117
+ last90Days: () => DateRangeValue;
118
+ last180Days: () => DateRangeValue;
119
+ last365Days: () => DateRangeValue;
120
+ lastMonth: () => DateRangeValue;
121
+ lastQuarter: () => DateRangeValue;
122
+ lastWeek: () => DateRangeValue;
123
+ lastYear: () => DateRangeValue;
124
+ lifetime: () => DateRangeValue;
125
+ monthToDate: () => DateRangeValue;
126
+ next7Days: () => DateRangeValue;
127
+ next14Days: () => DateRangeValue;
128
+ next30Days: () => DateRangeValue;
129
+ next90Days: () => DateRangeValue;
130
+ nextMonth: () => DateRangeValue;
131
+ nextQuarter: () => DateRangeValue;
132
+ nextWeek: () => DateRangeValue;
133
+ nextYear: () => DateRangeValue;
134
+ quarterToDate: () => DateRangeValue;
135
+ thisMonth: () => DateRangeValue;
136
+ thisQuarter: () => DateRangeValue;
137
+ thisWeek: () => DateRangeValue;
138
+ thisYear: () => DateRangeValue;
139
+ today: () => DateRangeValue;
140
+ tomorrow: () => DateRangeValue;
141
+ weekToDate: () => DateRangeValue;
142
+ yesterday: () => DateRangeValue;
143
+ yearToDate: () => DateRangeValue;
144
+ };
@@ -2,3 +2,4 @@ export { default as useElementWidth } from './use-element-width';
2
2
  export { default as useHover } from './use-hover';
3
3
  export { default as useStyleProps } from './use-style-props';
4
4
  export * from './use-style-props';
5
+ export * from './use-sync-max-height';
@@ -0,0 +1,8 @@
1
+ import { RefObject } from 'react';
2
+ interface Options {
3
+ enabled: boolean;
4
+ property?: 'height' | 'maxHeight';
5
+ round?: boolean;
6
+ }
7
+ export declare const useSyncMaxHeight: (sourceRef: RefObject<HTMLElement>, targetRef: RefObject<HTMLElement>, { enabled, property, round }: Options) => void;
8
+ export {};
@@ -1,5 +1,7 @@
1
1
  export * from './date';
2
+ export * from './date-range-presets';
2
3
  export * from './extract-data-aria-attributes';
3
4
  export { default as filterStyleProps } from './filter-style-props';
4
5
  export * from './hooks';
5
6
  export * from './types';
7
+ export * from './use-id';
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Hook to generate or use a stable field ID.
3
+ * Prefers the provided ID, falling back to a generated one that remains
4
+ * consistent across re-renders.
5
+ *
6
+ * This implementation uses a global counter with `useEffect` for SSR safety:
7
+ * - Ensures no hydration mismatches between server and client
8
+ * - Returns undefined during SSR (before useEffect runs)
9
+ * - Generates stable IDs on the client side using the prefix format
10
+ *
11
+ * The hook ensures the ID is only generated once per component instance,
12
+ * preventing issues with form field associations and accessibility.
13
+ *
14
+ * @param providedId - Optional ID provided by the component props
15
+ * @param prefix - Prefix for the generated ID (e.g., 'rbui-input-field')
16
+ * @returns A stable field ID string (may be undefined during SSR)
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * function MyField({ id, ...props }) {
21
+ * const controlId = useFieldId(id, 'rbui-my-field');
22
+ *
23
+ * return (
24
+ * <>
25
+ * <label htmlFor={controlId}>Label</label>
26
+ * <input id={controlId} {...props} />
27
+ * </>
28
+ * );
29
+ * }
30
+ * ```
31
+ */
32
+ export declare function useFieldId(providedId: string | undefined, prefix: string): string | undefined;
33
+ /**
34
+ * Reset the global ID counter. Useful for testing environments
35
+ * where you need predictable IDs across test runs.
36
+ *
37
+ * @internal
38
+ */
39
+ export declare function resetIdCounter(): void;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bloomreach/react-banana-ui",
3
3
  "type": "module",
4
- "version": "1.32.2",
4
+ "version": "1.33.0",
5
5
  "private": false,
6
6
  "repository": {
7
7
  "type": "git",
@@ -70,77 +70,77 @@
70
70
  "dependencies": {
71
71
  "@bloomreach/banana-theme": "0.0.28",
72
72
  "@floating-ui/react": "0.27.16",
73
- "@internationalized/date": "3.9.0",
73
+ "@internationalized/date": "3.10.0",
74
74
  "@mui/base": "5.0.0-beta.70",
75
75
  "@radix-ui/react-accordion": "1.2.12",
76
- "@radix-ui/react-slot": "1.2.3",
77
- "@react-aria/calendar": "3.9.1",
78
- "@react-aria/datepicker": "3.15.1",
79
- "@react-aria/i18n": "3.12.12",
80
- "@react-stately/calendar": "3.8.4",
81
- "@react-stately/datepicker": "3.15.1",
76
+ "@radix-ui/react-slot": "1.2.4",
77
+ "@react-aria/calendar": "3.9.2",
78
+ "@react-aria/datepicker": "3.15.2",
79
+ "@react-aria/i18n": "3.12.13",
80
+ "@react-stately/calendar": "3.9.0",
81
+ "@react-stately/datepicker": "3.15.2",
82
82
  "classnames": "2.5.1",
83
83
  "react-hot-toast": "2.6.0",
84
84
  "react-merge-refs": "2.1.1"
85
85
  },
86
86
  "devDependencies": {
87
- "@antfu/eslint-config": "5.4.1",
88
- "@commitlint/cli": "19.8.1",
89
- "@commitlint/config-conventional": "19.8.1",
90
- "@commitlint/types": "19.8.1",
87
+ "@antfu/eslint-config": "6.2.0",
88
+ "@commitlint/cli": "20.1.0",
89
+ "@commitlint/config-conventional": "20.0.0",
90
+ "@commitlint/types": "20.0.0",
91
91
  "@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
92
- "@eslint-react/eslint-plugin": "1.53.1",
93
- "@eslint/js": "9.36.0",
92
+ "@eslint-react/eslint-plugin": "2.3.5",
93
+ "@eslint/js": "9.39.1",
94
94
  "@laynezh/vite-plugin-lib-assets": "2.1.3",
95
- "@playwright/test": "1.55.0",
95
+ "@playwright/test": "1.56.1",
96
96
  "@semantic-release/changelog": "6.0.3",
97
97
  "@semantic-release/git": "10.0.1",
98
- "@storybook/addon-a11y": "9.1.7",
99
- "@storybook/addon-docs": "9.1.7",
100
- "@storybook/addon-links": "9.1.7",
101
- "@storybook/react-vite": "9.1.7",
98
+ "@storybook/addon-a11y": "10.0.8",
99
+ "@storybook/addon-docs": "10.0.8",
100
+ "@storybook/addon-links": "10.0.8",
101
+ "@storybook/react-vite": "10.0.8",
102
102
  "@testing-library/dom": "10.4.1",
103
- "@testing-library/jest-dom": "6.8.0",
103
+ "@testing-library/jest-dom": "6.9.1",
104
104
  "@testing-library/react": "16.3.0",
105
105
  "@testing-library/user-event": "14.6.1",
106
- "@types/node": "22.16.5",
106
+ "@types/node": "24.10.1",
107
107
  "@types/react": "18.x.x",
108
108
  "@types/react-dom": "18.x.x",
109
- "@vitejs/plugin-react-swc": "4.1.0",
110
- "@vitest/coverage-v8": "3.2.4",
111
- "@vitest/eslint-plugin": "1.3.12",
112
- "@vitest/ui": "3.2.4",
113
- "autoprefixer": "10.4.21",
109
+ "@vitejs/plugin-react-swc": "4.2.2",
110
+ "@vitest/coverage-v8": "4.0.12",
111
+ "@vitest/eslint-plugin": "1.4.3",
112
+ "@vitest/ui": "4.0.12",
113
+ "autoprefixer": "10.4.22",
114
114
  "conventional-changelog-conventionalcommits": "9.1.0",
115
- "eslint": "9.36.0",
115
+ "eslint": "9.39.1",
116
116
  "eslint-config-prettier": "10.1.8",
117
117
  "eslint-import-resolver-typescript": "4.4.4",
118
118
  "eslint-plugin-jsx-a11y": "6.10.2",
119
- "eslint-plugin-perfectionist": "4.15.0",
119
+ "eslint-plugin-perfectionist": "4.15.1",
120
120
  "eslint-plugin-prettier": "5.5.4",
121
121
  "eslint-plugin-react": "7.37.5",
122
- "eslint-plugin-react-hooks": "5.2.0",
123
- "eslint-plugin-react-refresh": "0.4.20",
124
- "eslint-plugin-storybook": "9.1.7",
125
- "eslint-plugin-unicorn": "61.0.2",
126
- "globals": "16.4.0",
122
+ "eslint-plugin-react-hooks": "7.0.1",
123
+ "eslint-plugin-react-refresh": "0.4.24",
124
+ "eslint-plugin-storybook": "10.0.8",
125
+ "eslint-plugin-unicorn": "62.0.0",
126
+ "globals": "16.5.0",
127
127
  "husky": "9.1.7",
128
- "jsdom": "27.0.0",
129
- "lint-staged": "16.1.6",
130
- "plop": "4.0.2",
128
+ "jsdom": "27.2.0",
129
+ "lint-staged": "16.2.7",
130
+ "plop": "4.0.4",
131
131
  "prettier": "3.6.2",
132
132
  "react": "18.3.1",
133
133
  "react-dom": "18.3.1",
134
134
  "resize-observer-polyfill": "1.5.1",
135
- "sass": "1.93.0",
135
+ "sass": "1.94.2",
136
136
  "semantic-release": "24.2.9",
137
- "storybook": "9.1.7",
138
- "typescript": "5.9.2",
139
- "typescript-eslint": "8.44.0",
140
- "vite": "7.1.6",
137
+ "storybook": "10.0.8",
138
+ "typescript": "5.9.3",
139
+ "typescript-eslint": "8.47.0",
140
+ "vite": "7.2.4",
141
141
  "vite-plugin-dts": "4.5.4",
142
142
  "vite-plugin-svgr": "4.5.0",
143
- "vitest": "3.2.4"
143
+ "vitest": "4.0.12"
144
144
  },
145
145
  "browserslist": [
146
146
  "> 0.25%",
@@ -1,6 +0,0 @@
1
- import { Menu } from '..';
2
- import { Meta, StoryObj } from '@storybook/react-vite';
3
- declare const meta: Meta;
4
- export default meta;
5
- export type Story = StoryObj<typeof Menu>;
6
- export declare const MenuStory: Story;
@@ -1,6 +0,0 @@
1
- import { default as MenuButton } from './menu-button';
2
- import { Meta, StoryObj } from '@storybook/react-vite';
3
- declare const meta: Meta;
4
- export default meta;
5
- export type Story = StoryObj<typeof MenuButton>;
6
- export declare const MenuButtonStory: Story;
@@ -1,10 +0,0 @@
1
- import { default as MenuContent } from './menu-content';
2
- import { Meta, StoryObj } from '@storybook/react-vite';
3
- declare const meta: Meta;
4
- export default meta;
5
- export type Story = StoryObj<typeof MenuContent>;
6
- export declare const MenuContentStory: Story;
7
- export declare const MenuContentTopPlacement: Story;
8
- export declare const MenuContentRightPlacement: Story;
9
- export declare const MenuContentBottomPlacement: Story;
10
- export declare const MenuContentLeftPlacement: Story;
@@ -1,6 +0,0 @@
1
- import { default as MenuGroup } from './menu-group';
2
- import { Meta, StoryObj } from '@storybook/react-vite';
3
- declare const meta: Meta;
4
- export default meta;
5
- export type Story = StoryObj<typeof MenuGroup>;
6
- export declare const MenuGroupStory: Story;
@@ -1,6 +0,0 @@
1
- import { default as MenuGroupLabel } from './menu-group-label';
2
- import { Meta, StoryObj } from '@storybook/react-vite';
3
- declare const meta: Meta;
4
- export default meta;
5
- export type Story = StoryObj<typeof MenuGroupLabel>;
6
- export declare const MenuGroupLabelStory: Story;
@@ -1,6 +0,0 @@
1
- import { default as MenuItem } from './menu-item';
2
- import { Meta, StoryObj } from '@storybook/react-vite';
3
- declare const meta: Meta;
4
- export default meta;
5
- export type Story = StoryObj<typeof MenuItem>;
6
- export declare const MenuItemStory: Story;
@@ -1,6 +0,0 @@
1
- import { default as MenuSeparator } from './menu-separator';
2
- import { Meta, StoryObj } from '@storybook/react-vite';
3
- declare const meta: Meta;
4
- export default meta;
5
- export type Story = StoryObj<typeof MenuSeparator>;
6
- export declare const MenuSeparatorStory: Story;
@@ -1,4 +0,0 @@
1
- /**
2
- * Generate a unique id based on the field name
3
- */
4
- export declare const generateFieldId: (fieldName: string) => string;