@bitrise/bitkit-v2 0.3.475-beta.3009 → 0.3.475-beta.3012

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 (124) hide show
  1. package/dist/components/BitkitCalendar/BitkitCalendar.d.ts +12 -0
  2. package/dist/components/BitkitCalendar/BitkitCalendar.js +7 -1
  3. package/dist/components/BitkitCalendar/BitkitCalendar.js.map +1 -1
  4. package/dist/components/BitkitCalendar/components/CalendarContent.d.ts +5 -1
  5. package/dist/components/BitkitCalendar/components/CalendarContent.js +60 -43
  6. package/dist/components/BitkitCalendar/components/CalendarContent.js.map +1 -1
  7. package/dist/components/BitkitCalendar/components/CalendarMonth.d.ts +4 -2
  8. package/dist/components/BitkitCalendar/components/CalendarMonth.js +15 -5
  9. package/dist/components/BitkitCalendar/components/CalendarMonth.js.map +1 -1
  10. package/dist/components/BitkitCalendar/components/CalendarMonthSelect.d.ts +2 -1
  11. package/dist/components/BitkitCalendar/components/CalendarMonthSelect.js +3 -2
  12. package/dist/components/BitkitCalendar/components/CalendarMonthSelect.js.map +1 -1
  13. package/dist/components/BitkitCalendar/components/CalendarNextTrigger.d.ts +3 -1
  14. package/dist/components/BitkitCalendar/components/CalendarNextTrigger.js +3 -3
  15. package/dist/components/BitkitCalendar/components/CalendarNextTrigger.js.map +1 -1
  16. package/dist/components/BitkitCalendar/components/CalendarPrevTrigger.d.ts +3 -1
  17. package/dist/components/BitkitCalendar/components/CalendarPrevTrigger.js +3 -3
  18. package/dist/components/BitkitCalendar/components/CalendarPrevTrigger.js.map +1 -1
  19. package/dist/components/BitkitCalendar/components/CalendarSelect.d.ts +1 -0
  20. package/dist/components/BitkitCalendar/components/CalendarSelect.js +4 -2
  21. package/dist/components/BitkitCalendar/components/CalendarSelect.js.map +1 -1
  22. package/dist/components/BitkitCalendar/components/CalendarYearSelect.d.ts +2 -1
  23. package/dist/components/BitkitCalendar/components/CalendarYearSelect.js +3 -2
  24. package/dist/components/BitkitCalendar/components/CalendarYearSelect.js.map +1 -1
  25. package/dist/components/BitkitDatePicker/BitkitDatePicker.d.ts +2 -0
  26. package/dist/components/BitkitDatePicker/BitkitDatePicker.js +2 -1
  27. package/dist/components/BitkitDatePicker/BitkitDatePicker.js.map +1 -1
  28. package/dist/components/BitkitFilter/BitkitFilter.context.d.ts +65 -0
  29. package/dist/components/BitkitFilter/BitkitFilter.context.js +82 -0
  30. package/dist/components/BitkitFilter/BitkitFilter.context.js.map +1 -0
  31. package/dist/components/BitkitFilter/BitkitFilter.d.ts +55 -0
  32. package/dist/components/BitkitFilter/BitkitFilter.js +240 -0
  33. package/dist/components/BitkitFilter/BitkitFilter.js.map +1 -0
  34. package/dist/components/BitkitFilter/BitkitFilter.utils.d.ts +18 -0
  35. package/dist/components/BitkitFilter/BitkitFilter.utils.js +42 -0
  36. package/dist/components/BitkitFilter/BitkitFilter.utils.js.map +1 -0
  37. package/dist/components/BitkitFilter/BitkitFilterAdd.d.ts +18 -0
  38. package/dist/components/BitkitFilter/BitkitFilterAdd.js +188 -0
  39. package/dist/components/BitkitFilter/BitkitFilterAdd.js.map +1 -0
  40. package/dist/components/BitkitFilter/BitkitFilterDateRange.d.ts +26 -0
  41. package/dist/components/BitkitFilter/BitkitFilterDateRange.js +118 -0
  42. package/dist/components/BitkitFilter/BitkitFilterDateRange.js.map +1 -0
  43. package/dist/components/BitkitFilter/BitkitFilterSearch.d.ts +23 -0
  44. package/dist/components/BitkitFilter/BitkitFilterSearch.js +70 -0
  45. package/dist/components/BitkitFilter/BitkitFilterSearch.js.map +1 -0
  46. package/dist/components/BitkitFilter/BitkitFilterSelect.d.ts +61 -0
  47. package/dist/components/BitkitFilter/BitkitFilterSelect.js +140 -0
  48. package/dist/components/BitkitFilter/BitkitFilterSelect.js.map +1 -0
  49. package/dist/components/BitkitFilter/BitkitFilterSwitch.d.ts +28 -0
  50. package/dist/components/BitkitFilter/BitkitFilterSwitch.js +87 -0
  51. package/dist/components/BitkitFilter/BitkitFilterSwitch.js.map +1 -0
  52. package/dist/components/BitkitFilter/components/FilterChip.d.ts +23 -0
  53. package/dist/components/BitkitFilter/components/FilterChip.js +64 -0
  54. package/dist/components/BitkitFilter/components/FilterChip.js.map +1 -0
  55. package/dist/components/BitkitFilter/components/FilterField.d.ts +15 -0
  56. package/dist/components/BitkitFilter/components/FilterField.js +58 -0
  57. package/dist/components/BitkitFilter/components/FilterField.js.map +1 -0
  58. package/dist/components/BitkitFilter/components/FilterPanel.d.ts +42 -0
  59. package/dist/components/BitkitFilter/components/FilterPanel.js +126 -0
  60. package/dist/components/BitkitFilter/components/FilterPanel.js.map +1 -0
  61. package/dist/components/BitkitFilter/components/FilterSearchInput.d.ts +15 -0
  62. package/dist/components/BitkitFilter/components/FilterSearchInput.js +41 -0
  63. package/dist/components/BitkitFilter/components/FilterSearchInput.js.map +1 -0
  64. package/dist/components/BitkitFilter/components/FilterSelectForm.d.ts +39 -0
  65. package/dist/components/BitkitFilter/components/FilterSelectForm.js +278 -0
  66. package/dist/components/BitkitFilter/components/FilterSelectForm.js.map +1 -0
  67. package/dist/components/BitkitMarkdown/BitkitMarkdown.js +1 -1
  68. package/dist/components/BitkitNoteCard/BitkitNoteCard.js +1 -1
  69. package/dist/components/index.d.ts +6 -1
  70. package/dist/main.js +8 -9
  71. package/dist/theme/recipes/index.d.ts +525 -0
  72. package/dist/theme/recipes/index.js +1 -3
  73. package/dist/theme/recipes/index.js.map +1 -1
  74. package/dist/theme/slot-recipes/DatePicker.recipe.d.ts +15 -0
  75. package/dist/theme/slot-recipes/DatePicker.recipe.js +72 -22
  76. package/dist/theme/slot-recipes/DatePicker.recipe.js.map +1 -1
  77. package/dist/theme/slot-recipes/DatePickerSelect.recipe.d.ts +82 -0
  78. package/dist/theme/slot-recipes/DatePickerSelect.recipe.js +28 -10
  79. package/dist/theme/slot-recipes/DatePickerSelect.recipe.js.map +1 -1
  80. package/dist/theme/slot-recipes/Filter.recipe.d.ts +37 -0
  81. package/dist/theme/slot-recipes/Filter.recipe.js +636 -0
  82. package/dist/theme/slot-recipes/Filter.recipe.js.map +1 -0
  83. package/dist/theme/slot-recipes/Listbox.recipe.d.ts +22 -0
  84. package/dist/theme/slot-recipes/Listbox.recipe.js +97 -0
  85. package/dist/theme/slot-recipes/Listbox.recipe.js.map +1 -0
  86. package/dist/theme/slot-recipes/Menu.recipe.js +6 -1
  87. package/dist/theme/slot-recipes/Menu.recipe.js.map +1 -1
  88. package/dist/theme/slot-recipes/Tag.recipe.d.ts +1 -1
  89. package/dist/theme/slot-recipes/index.d.ts +155 -2
  90. package/dist/theme/slot-recipes/index.js +4 -2
  91. package/dist/theme/slot-recipes/index.js.map +1 -1
  92. package/dist/utilities/BitkitPortalContext.js +3 -2
  93. package/dist/utilities/BitkitPortalContext.js.map +1 -1
  94. package/docs/v1-to-v2-migration-guide.md +48 -1
  95. package/package.json +1 -1
  96. package/dist/components/BitkitUIHeader/BitkitUIHeader.d.ts +0 -37
  97. package/dist/components/BitkitUIHeader/BitkitUIHeader.js +0 -100
  98. package/dist/components/BitkitUIHeader/BitkitUIHeader.js.map +0 -1
  99. package/dist/components/BitkitUIHeader/BitriseLogo.d.ts +0 -10
  100. package/dist/components/BitkitUIHeader/BitriseLogo.js +0 -86
  101. package/dist/components/BitkitUIHeader/BitriseLogo.js.map +0 -1
  102. package/dist/components/BitkitUIHeader/UIHeaderAccount.d.ts +0 -19
  103. package/dist/components/BitkitUIHeader/UIHeaderAccount.js +0 -38
  104. package/dist/components/BitkitUIHeader/UIHeaderAccount.js.map +0 -1
  105. package/dist/components/BitkitUIHeader/UIHeaderButton.d.ts +0 -33
  106. package/dist/components/BitkitUIHeader/UIHeaderButton.js +0 -41
  107. package/dist/components/BitkitUIHeader/UIHeaderButton.js.map +0 -1
  108. package/dist/components/BitkitUIHeader/UIHeaderContext.d.ts +0 -12
  109. package/dist/components/BitkitUIHeader/UIHeaderContext.js +0 -11
  110. package/dist/components/BitkitUIHeader/UIHeaderContext.js.map +0 -1
  111. package/dist/components/BitkitUIHeader/UIHeaderControl.d.ts +0 -64
  112. package/dist/components/BitkitUIHeader/UIHeaderControl.js +0 -66
  113. package/dist/components/BitkitUIHeader/UIHeaderControl.js.map +0 -1
  114. package/dist/components/BitkitUIHeader/UIHeaderNavButton.d.ts +0 -20
  115. package/dist/components/BitkitUIHeader/UIHeaderNavButton.js +0 -47
  116. package/dist/components/BitkitUIHeader/UIHeaderNavButton.js.map +0 -1
  117. package/dist/components/BitkitUIHeader/UIHeaderSearch.d.ts +0 -32
  118. package/dist/components/BitkitUIHeader/UIHeaderSearch.js +0 -96
  119. package/dist/components/BitkitUIHeader/UIHeaderSearch.js.map +0 -1
  120. package/dist/theme/recipes/UIHeaderButton.recipe.js +0 -111
  121. package/dist/theme/recipes/UIHeaderButton.recipe.js.map +0 -1
  122. package/dist/theme/slot-recipes/UIHeader.recipe.d.ts +0 -11
  123. package/dist/theme/slot-recipes/UIHeader.recipe.js +0 -237
  124. package/dist/theme/slot-recipes/UIHeader.recipe.js.map +0 -1
@@ -0,0 +1,22 @@
1
+ declare const listboxSlotRecipe: import('@chakra-ui/react').SlotRecipeDefinition<"content" | "input" | "label" | "root" | "item" | "itemIndicator" | "itemGroup" | "itemGroupLabel" | "itemText" | "valueText" | "empty", {
2
+ size: {
3
+ md: {};
4
+ lg: {
5
+ content: {
6
+ maxHeight: "none";
7
+ paddingBlock: "8";
8
+ };
9
+ item: {
10
+ minHeight: "48";
11
+ textStyle: "body/lg/regular";
12
+ _selected: {
13
+ textStyle: "body/lg/regular";
14
+ };
15
+ };
16
+ empty: {
17
+ textStyle: "body/lg/regular";
18
+ };
19
+ };
20
+ };
21
+ }>;
22
+ export default listboxSlotRecipe;
@@ -0,0 +1,97 @@
1
+ import { rem } from "../themeUtils.js";
2
+ import { defineSlotRecipe } from "@chakra-ui/react/styled-system";
3
+ import { listboxAnatomy } from "@chakra-ui/react/anatomy";
4
+ //#region lib/theme/slot-recipes/Listbox.recipe.ts
5
+ var listboxSlotRecipe = defineSlotRecipe({
6
+ className: "listbox",
7
+ slots: listboxAnatomy.keys(),
8
+ base: {
9
+ root: {
10
+ display: "flex",
11
+ flexDirection: "column",
12
+ width: "100%"
13
+ },
14
+ content: {
15
+ display: "flex",
16
+ flexDirection: "column",
17
+ maxHeight: rem(200),
18
+ outline: "none",
19
+ overflowY: "auto",
20
+ paddingBlockEnd: "16"
21
+ },
22
+ item: {
23
+ alignItems: "center",
24
+ color: "text/body",
25
+ cursor: "pointer",
26
+ display: "flex",
27
+ gap: "12",
28
+ minHeight: "40",
29
+ paddingBlock: "8",
30
+ paddingInline: "24",
31
+ textAlign: "start",
32
+ textStyle: "body/md/regular",
33
+ userSelect: "none",
34
+ _highlighted: { background: "background/hover" },
35
+ _selected: {
36
+ background: "background/selected",
37
+ color: "text/primary",
38
+ textStyle: "body/md/semibold",
39
+ _highlighted: { background: "background/selected-hover" }
40
+ },
41
+ _disabled: {
42
+ color: "text/disabled",
43
+ cursor: "not-allowed",
44
+ _highlighted: { background: "transparent" }
45
+ }
46
+ },
47
+ itemText: {
48
+ flex: "1",
49
+ minWidth: 0,
50
+ truncate: true
51
+ },
52
+ itemIndicator: {
53
+ color: "icon/interactive",
54
+ display: "flex",
55
+ flexShrink: 0
56
+ },
57
+ itemGroup: {},
58
+ itemGroupLabel: {
59
+ color: "text/secondary",
60
+ paddingBlock: "8",
61
+ paddingInline: "24",
62
+ textStyle: "body/sm/regular"
63
+ },
64
+ empty: {
65
+ color: "text/secondary",
66
+ paddingBlock: "8",
67
+ paddingInline: "24",
68
+ textStyle: "body/md/regular"
69
+ },
70
+ label: {
71
+ color: "text/primary",
72
+ textStyle: "comp/input/label"
73
+ },
74
+ valueText: { truncate: true },
75
+ input: {}
76
+ },
77
+ variants: { size: {
78
+ md: {},
79
+ lg: {
80
+ content: {
81
+ maxHeight: "none",
82
+ paddingBlock: "8"
83
+ },
84
+ item: {
85
+ minHeight: "48",
86
+ textStyle: "body/lg/regular",
87
+ _selected: { textStyle: "body/lg/regular" }
88
+ },
89
+ empty: { textStyle: "body/lg/regular" }
90
+ }
91
+ } },
92
+ defaultVariants: { size: "md" }
93
+ });
94
+ //#endregion
95
+ export { listboxSlotRecipe as default };
96
+
97
+ //# sourceMappingURL=Listbox.recipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Listbox.recipe.js","names":[],"sources":["../../../lib/theme/slot-recipes/Listbox.recipe.ts"],"sourcesContent":["import { listboxAnatomy } from '@chakra-ui/react/anatomy';\nimport { defineSlotRecipe } from '@chakra-ui/react/styled-system';\n\nimport { rem } from '../themeUtils';\n\nconst listboxSlotRecipe = defineSlotRecipe({\n className: 'listbox',\n slots: listboxAnatomy.keys(),\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: rem(200),\n outline: 'none',\n overflowY: 'auto',\n paddingBlockEnd: '16',\n },\n item: {\n alignItems: 'center',\n color: 'text/body',\n cursor: 'pointer',\n display: 'flex',\n gap: '12',\n minHeight: '40',\n paddingBlock: '8',\n paddingInline: '24',\n textAlign: 'start',\n textStyle: 'body/md/regular',\n userSelect: 'none',\n _highlighted: {\n background: 'background/hover',\n },\n _selected: {\n background: 'background/selected',\n color: 'text/primary',\n textStyle: 'body/md/semibold',\n _highlighted: {\n background: 'background/selected-hover',\n },\n },\n _disabled: {\n color: 'text/disabled',\n cursor: 'not-allowed',\n _highlighted: {\n background: 'transparent',\n },\n },\n },\n itemText: {\n flex: '1',\n minWidth: 0,\n truncate: true,\n },\n itemIndicator: {\n color: 'icon/interactive',\n display: 'flex',\n flexShrink: 0,\n },\n itemGroup: {},\n itemGroupLabel: {\n color: 'text/secondary',\n paddingBlock: '8',\n paddingInline: '24',\n textStyle: 'body/sm/regular',\n },\n empty: {\n color: 'text/secondary',\n paddingBlock: '8',\n paddingInline: '24',\n textStyle: 'body/md/regular',\n },\n label: {\n color: 'text/primary',\n textStyle: 'comp/input/label',\n },\n valueText: {\n truncate: true,\n },\n input: {},\n },\n variants: {\n size: {\n md: {},\n // The full-screen mobile filter list: taller rows, larger text, unbounded height.\n lg: {\n content: {\n maxHeight: 'none',\n paddingBlock: '8',\n },\n item: {\n minHeight: '48',\n textStyle: 'body/lg/regular',\n _selected: {\n textStyle: 'body/lg/regular',\n },\n },\n empty: {\n textStyle: 'body/lg/regular',\n },\n },\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport default listboxSlotRecipe;\n"],"mappings":";;;;AAKA,IAAM,oBAAoB,iBAAiB;CACzC,WAAW;CACX,OAAO,eAAe,KAAK;CAC3B,MAAM;EACJ,MAAM;GACJ,SAAS;GACT,eAAe;GACf,OAAO;EACT;EACA,SAAS;GACP,SAAS;GACT,eAAe;GACf,WAAW,IAAI,GAAG;GAClB,SAAS;GACT,WAAW;GACX,iBAAiB;EACnB;EACA,MAAM;GACJ,YAAY;GACZ,OAAO;GACP,QAAQ;GACR,SAAS;GACT,KAAK;GACL,WAAW;GACX,cAAc;GACd,eAAe;GACf,WAAW;GACX,WAAW;GACX,YAAY;GACZ,cAAc,EACZ,YAAY,mBACd;GACA,WAAW;IACT,YAAY;IACZ,OAAO;IACP,WAAW;IACX,cAAc,EACZ,YAAY,4BACd;GACF;GACA,WAAW;IACT,OAAO;IACP,QAAQ;IACR,cAAc,EACZ,YAAY,cACd;GACF;EACF;EACA,UAAU;GACR,MAAM;GACN,UAAU;GACV,UAAU;EACZ;EACA,eAAe;GACb,OAAO;GACP,SAAS;GACT,YAAY;EACd;EACA,WAAW,CAAC;EACZ,gBAAgB;GACd,OAAO;GACP,cAAc;GACd,eAAe;GACf,WAAW;EACb;EACA,OAAO;GACL,OAAO;GACP,cAAc;GACd,eAAe;GACf,WAAW;EACb;EACA,OAAO;GACL,OAAO;GACP,WAAW;EACb;EACA,WAAW,EACT,UAAU,KACZ;EACA,OAAO,CAAC;CACV;CACA,UAAU,EACR,MAAM;EACJ,IAAI,CAAC;EAEL,IAAI;GACF,SAAS;IACP,WAAW;IACX,cAAc;GAChB;GACA,MAAM;IACJ,WAAW;IACX,WAAW;IACX,WAAW,EACT,WAAW,kBACb;GACF;GACA,OAAO,EACL,WAAW,kBACb;EACF;CACF,EACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC"}
@@ -73,7 +73,6 @@ var menuSlotRecipe = defineSlotRecipe({
73
73
  flexDirection: "row",
74
74
  paddingLeft: "16",
75
75
  paddingRight: "24",
76
- _disabled: { cursor: "not-allowed" },
77
76
  "&[data-danger]": {
78
77
  color: "button/danger-secondary/fg",
79
78
  _icon: { color: "button/danger-secondary/fg" },
@@ -90,6 +89,12 @@ var menuSlotRecipe = defineSlotRecipe({
90
89
  background: "button/secondary/bg-hover",
91
90
  _active: itemActive
92
91
  },
92
+ _disabled: {
93
+ color: "text/disabled",
94
+ cursor: "not-allowed",
95
+ _icon: { color: "icon/disabled" },
96
+ _highlighted: { background: "transparent" }
97
+ },
93
98
  "& [data-suffix-icon]": { color: "icon/tertiary" }
94
99
  },
95
100
  itemGroupLabel: {
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.recipe.js","names":[],"sources":["../../../lib/theme/slot-recipes/Menu.recipe.ts"],"sourcesContent":["import { menuAnatomy } from '@chakra-ui/react/anatomy';\nimport { defineSlotRecipe, type SystemStyleObject } from '@chakra-ui/react/styled-system';\n\nconst itemActive: SystemStyleObject = {\n background: 'button/secondary/bg-active',\n _icon: {\n color: 'icon/primary',\n },\n};\nconst itemActiveDanger: SystemStyleObject = {\n background: 'button/danger-secondary/bg-active',\n color: 'button/danger-secondary/fg-active',\n _icon: {\n color: 'button/danger-secondary/fg-active',\n },\n};\nconst menuSlotRecipe = defineSlotRecipe({\n className: 'menu',\n slots: [...menuAnatomy.keys(), 'itemHelper'],\n variants: {\n size: {\n lg: {\n item: {\n alignItems: 'center',\n paddingY: '12',\n textStyle: 'body/lg/regular',\n // With a helper line the item aligns to the top of the label and gets tighter padding.\n '&[data-helper]': {\n alignItems: 'flex-start',\n paddingY: '8',\n },\n },\n },\n md: {\n item: {\n alignItems: 'center',\n // The label line (20px) alone is shorter than the designed 40px row.\n minHeight: '40',\n paddingY: '8',\n textStyle: 'body/md/regular',\n '&[data-helper]': {\n _icon: {\n // Optically center the 16px icon against the 20px label line.\n marginTop: '2',\n },\n alignItems: 'flex-start',\n paddingY: '6',\n },\n },\n },\n },\n },\n base: {\n content: {\n // Sit above the legacy v1 full-dialog/drawer layer (zIndex.fullDialog = 1200); the menu\n // portals out, so without this it renders behind a v1 FloatingDrawer. Matches the content-slot\n // z-index convention of the other floating recipes (Popover, Tooltip, Combobox/Select).\n zIndex: 'popover',\n borderRadius: '4',\n paddingY: '8',\n border: '1px solid',\n borderColor: 'border/minimal',\n _focusVisible: { outline: 'none' },\n boxShadow: 'elevation/lg',\n background: 'background/primary',\n maxHeight: 'var(--available-height)',\n // The cap is useless without these: the positioner sets --available-height from the viewport,\n // and a longer list then spills out of the content box instead of scrolling inside it.\n overflow: 'hidden',\n overflowY: 'auto',\n _open: {\n animationStyle: 'slide-fade-in',\n animationDuration: 'fast',\n },\n _closed: {\n animationStyle: 'slide-fade-out',\n animationDuration: 'faster',\n },\n },\n itemHelper: {\n textStyle: 'body/sm/regular',\n color: 'text/secondary',\n },\n item: {\n _icon: {\n color: 'icon/secondary',\n _active: {\n color: 'icon/primary',\n },\n },\n cursor: 'pointer',\n display: 'flex',\n gap: '12',\n userSelect: 'none',\n flexDirection: 'row',\n paddingLeft: '16',\n paddingRight: '24',\n _disabled: {\n cursor: 'not-allowed',\n },\n '&[data-danger]': {\n color: 'button/danger-secondary/fg',\n _icon: {\n color: 'button/danger-secondary/fg',\n },\n _active: itemActiveDanger,\n _highlighted: {\n background: 'button/danger-secondary/bg-hover',\n color: 'button/danger-secondary/fg-hover',\n _active: itemActiveDanger,\n _icon: {\n color: 'button/danger-secondary/fg-hover',\n },\n },\n },\n _active: itemActive,\n _highlighted: {\n background: 'button/secondary/bg-hover',\n _active: itemActive,\n },\n // The \"leaves this page\" arrow is quieter than the leading icon, and stays that way in every\n // state — including the destructive one, which overrides `_icon` above.\n '& [data-suffix-icon]': {\n color: 'icon/tertiary',\n },\n },\n itemGroupLabel: {\n // The rule after the label is a Chakra Separator, whose recipe base is `border/regular` — a\n // shade darker than the menu's own separator. Match `BitkitActionMenu.Separator`.\n '& .separator': {\n borderColor: 'border/minimal',\n },\n textStyle: 'heading/h6',\n color: 'text/tertiary',\n paddingTop: '12',\n paddingLeft: '16',\n paddingRight: '16',\n paddingBottom: '6',\n display: 'flex',\n gap: '8',\n flexDirection: 'row',\n alignItems: 'center',\n },\n separator: {\n color: 'border/minimal',\n marginY: '8',\n },\n },\n defaultVariants: {\n size: 'lg',\n },\n});\n\nexport default menuSlotRecipe;\n"],"mappings":";;;AAGA,IAAM,aAAgC;CACpC,YAAY;CACZ,OAAO,EACL,OAAO,eACT;AACF;AACA,IAAM,mBAAsC;CAC1C,YAAY;CACZ,OAAO;CACP,OAAO,EACL,OAAO,oCACT;AACF;AACA,IAAM,iBAAiB,iBAAiB;CACtC,WAAW;CACX,OAAO,CAAC,GAAG,YAAY,KAAK,GAAG,YAAY;CAC3C,UAAU,EACR,MAAM;EACJ,IAAI,EACF,MAAM;GACJ,YAAY;GACZ,UAAU;GACV,WAAW;GAEX,kBAAkB;IAChB,YAAY;IACZ,UAAU;GACZ;EACF,EACF;EACA,IAAI,EACF,MAAM;GACJ,YAAY;GAEZ,WAAW;GACX,UAAU;GACV,WAAW;GACX,kBAAkB;IAChB,OAAO,EAEL,WAAW,IACb;IACA,YAAY;IACZ,UAAU;GACZ;EACF,EACF;CACF,EACF;CACA,MAAM;EACJ,SAAS;GAIP,QAAQ;GACR,cAAc;GACd,UAAU;GACV,QAAQ;GACR,aAAa;GACb,eAAe,EAAE,SAAS,OAAO;GACjC,WAAW;GACX,YAAY;GACZ,WAAW;GAGX,UAAU;GACV,WAAW;GACX,OAAO;IACL,gBAAgB;IAChB,mBAAmB;GACrB;GACA,SAAS;IACP,gBAAgB;IAChB,mBAAmB;GACrB;EACF;EACA,YAAY;GACV,WAAW;GACX,OAAO;EACT;EACA,MAAM;GACJ,OAAO;IACL,OAAO;IACP,SAAS,EACP,OAAO,eACT;GACF;GACA,QAAQ;GACR,SAAS;GACT,KAAK;GACL,YAAY;GACZ,eAAe;GACf,aAAa;GACb,cAAc;GACd,WAAW,EACT,QAAQ,cACV;GACA,kBAAkB;IAChB,OAAO;IACP,OAAO,EACL,OAAO,6BACT;IACA,SAAS;IACT,cAAc;KACZ,YAAY;KACZ,OAAO;KACP,SAAS;KACT,OAAO,EACL,OAAO,mCACT;IACF;GACF;GACA,SAAS;GACT,cAAc;IACZ,YAAY;IACZ,SAAS;GACX;GAGA,wBAAwB,EACtB,OAAO,gBACT;EACF;EACA,gBAAgB;GAGd,gBAAgB,EACd,aAAa,iBACf;GACA,WAAW;GACX,OAAO;GACP,YAAY;GACZ,aAAa;GACb,cAAc;GACd,eAAe;GACf,SAAS;GACT,KAAK;GACL,eAAe;GACf,YAAY;EACd;EACA,WAAW;GACT,OAAO;GACP,SAAS;EACX;CACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC"}
1
+ {"version":3,"file":"Menu.recipe.js","names":[],"sources":["../../../lib/theme/slot-recipes/Menu.recipe.ts"],"sourcesContent":["import { menuAnatomy } from '@chakra-ui/react/anatomy';\nimport { defineSlotRecipe, type SystemStyleObject } from '@chakra-ui/react/styled-system';\n\nconst itemActive: SystemStyleObject = {\n background: 'button/secondary/bg-active',\n _icon: {\n color: 'icon/primary',\n },\n};\nconst itemActiveDanger: SystemStyleObject = {\n background: 'button/danger-secondary/bg-active',\n color: 'button/danger-secondary/fg-active',\n _icon: {\n color: 'button/danger-secondary/fg-active',\n },\n};\nconst menuSlotRecipe = defineSlotRecipe({\n className: 'menu',\n slots: [...menuAnatomy.keys(), 'itemHelper'],\n variants: {\n size: {\n lg: {\n item: {\n alignItems: 'center',\n paddingY: '12',\n textStyle: 'body/lg/regular',\n // With a helper line the item aligns to the top of the label and gets tighter padding.\n '&[data-helper]': {\n alignItems: 'flex-start',\n paddingY: '8',\n },\n },\n },\n md: {\n item: {\n alignItems: 'center',\n // The label line (20px) alone is shorter than the designed 40px row.\n minHeight: '40',\n paddingY: '8',\n textStyle: 'body/md/regular',\n '&[data-helper]': {\n _icon: {\n // Optically center the 16px icon against the 20px label line.\n marginTop: '2',\n },\n alignItems: 'flex-start',\n paddingY: '6',\n },\n },\n },\n },\n },\n base: {\n content: {\n // Sit above the legacy v1 full-dialog/drawer layer (zIndex.fullDialog = 1200); the menu\n // portals out, so without this it renders behind a v1 FloatingDrawer. Matches the content-slot\n // z-index convention of the other floating recipes (Popover, Tooltip, Combobox/Select).\n zIndex: 'popover',\n borderRadius: '4',\n paddingY: '8',\n border: '1px solid',\n borderColor: 'border/minimal',\n _focusVisible: { outline: 'none' },\n boxShadow: 'elevation/lg',\n background: 'background/primary',\n maxHeight: 'var(--available-height)',\n // The cap is useless without these: the positioner sets --available-height from the viewport,\n // and a longer list then spills out of the content box instead of scrolling inside it.\n overflow: 'hidden',\n overflowY: 'auto',\n _open: {\n animationStyle: 'slide-fade-in',\n animationDuration: 'fast',\n },\n _closed: {\n animationStyle: 'slide-fade-out',\n animationDuration: 'faster',\n },\n },\n itemHelper: {\n textStyle: 'body/sm/regular',\n color: 'text/secondary',\n },\n item: {\n _icon: {\n color: 'icon/secondary',\n _active: {\n color: 'icon/primary',\n },\n },\n cursor: 'pointer',\n display: 'flex',\n gap: '12',\n userSelect: 'none',\n flexDirection: 'row',\n paddingLeft: '16',\n paddingRight: '24',\n '&[data-danger]': {\n color: 'button/danger-secondary/fg',\n _icon: {\n color: 'button/danger-secondary/fg',\n },\n _active: itemActiveDanger,\n _highlighted: {\n background: 'button/danger-secondary/bg-hover',\n color: 'button/danger-secondary/fg-hover',\n _active: itemActiveDanger,\n _icon: {\n color: 'button/danger-secondary/fg-hover',\n },\n },\n },\n _active: itemActive,\n _highlighted: {\n background: 'button/secondary/bg-hover',\n _active: itemActive,\n },\n // After the danger and highlight blocks: equally specific, so the later one wins for a disabled danger item.\n _disabled: {\n color: 'text/disabled',\n cursor: 'not-allowed',\n _icon: {\n color: 'icon/disabled',\n },\n _highlighted: {\n background: 'transparent',\n },\n },\n // The \"leaves this page\" arrow is quieter than the leading icon, and stays that way in every\n // state — including the destructive one, which overrides `_icon` above.\n '& [data-suffix-icon]': {\n color: 'icon/tertiary',\n },\n },\n itemGroupLabel: {\n // The rule after the label is a Chakra Separator, whose recipe base is `border/regular` — a\n // shade darker than the menu's own separator. Match `BitkitActionMenu.Separator`.\n '& .separator': {\n borderColor: 'border/minimal',\n },\n textStyle: 'heading/h6',\n color: 'text/tertiary',\n paddingTop: '12',\n paddingLeft: '16',\n paddingRight: '16',\n paddingBottom: '6',\n display: 'flex',\n gap: '8',\n flexDirection: 'row',\n alignItems: 'center',\n },\n separator: {\n color: 'border/minimal',\n marginY: '8',\n },\n },\n defaultVariants: {\n size: 'lg',\n },\n});\n\nexport default menuSlotRecipe;\n"],"mappings":";;;AAGA,IAAM,aAAgC;CACpC,YAAY;CACZ,OAAO,EACL,OAAO,eACT;AACF;AACA,IAAM,mBAAsC;CAC1C,YAAY;CACZ,OAAO;CACP,OAAO,EACL,OAAO,oCACT;AACF;AACA,IAAM,iBAAiB,iBAAiB;CACtC,WAAW;CACX,OAAO,CAAC,GAAG,YAAY,KAAK,GAAG,YAAY;CAC3C,UAAU,EACR,MAAM;EACJ,IAAI,EACF,MAAM;GACJ,YAAY;GACZ,UAAU;GACV,WAAW;GAEX,kBAAkB;IAChB,YAAY;IACZ,UAAU;GACZ;EACF,EACF;EACA,IAAI,EACF,MAAM;GACJ,YAAY;GAEZ,WAAW;GACX,UAAU;GACV,WAAW;GACX,kBAAkB;IAChB,OAAO,EAEL,WAAW,IACb;IACA,YAAY;IACZ,UAAU;GACZ;EACF,EACF;CACF,EACF;CACA,MAAM;EACJ,SAAS;GAIP,QAAQ;GACR,cAAc;GACd,UAAU;GACV,QAAQ;GACR,aAAa;GACb,eAAe,EAAE,SAAS,OAAO;GACjC,WAAW;GACX,YAAY;GACZ,WAAW;GAGX,UAAU;GACV,WAAW;GACX,OAAO;IACL,gBAAgB;IAChB,mBAAmB;GACrB;GACA,SAAS;IACP,gBAAgB;IAChB,mBAAmB;GACrB;EACF;EACA,YAAY;GACV,WAAW;GACX,OAAO;EACT;EACA,MAAM;GACJ,OAAO;IACL,OAAO;IACP,SAAS,EACP,OAAO,eACT;GACF;GACA,QAAQ;GACR,SAAS;GACT,KAAK;GACL,YAAY;GACZ,eAAe;GACf,aAAa;GACb,cAAc;GACd,kBAAkB;IAChB,OAAO;IACP,OAAO,EACL,OAAO,6BACT;IACA,SAAS;IACT,cAAc;KACZ,YAAY;KACZ,OAAO;KACP,SAAS;KACT,OAAO,EACL,OAAO,mCACT;IACF;GACF;GACA,SAAS;GACT,cAAc;IACZ,YAAY;IACZ,SAAS;GACX;GAEA,WAAW;IACT,OAAO;IACP,QAAQ;IACR,OAAO,EACL,OAAO,gBACT;IACA,cAAc,EACZ,YAAY,cACd;GACF;GAGA,wBAAwB,EACtB,OAAO,gBACT;EACF;EACA,gBAAgB;GAGd,gBAAgB,EACd,aAAa,iBACf;GACA,WAAW;GACX,OAAO;GACP,YAAY;GACZ,aAAa;GACb,cAAc;GACd,eAAe;GACf,SAAS;GACT,KAAK;GACL,eAAe;GACf,YAAY;EACd;EACA,WAAW;GACT,OAAO;GACP,SAAS;EACX;CACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC"}
@@ -1,4 +1,4 @@
1
- declare const tagSlotRecipe: import('@chakra-ui/react').SlotRecipeDefinition<"label" | "root" | "closeTrigger" | "startElement" | "endElement", {
1
+ declare const tagSlotRecipe: import('@chakra-ui/react').SlotRecipeDefinition<"label" | "root" | "closeTrigger" | "endElement" | "startElement", {
2
2
  colorVariant: {
3
3
  neutral: {
4
4
  root: {
@@ -609,10 +609,25 @@ declare const slotRecipes: {
609
609
  device: {
610
610
  mobile: {
611
611
  content: {
612
+ minWidth: number;
612
613
  boxShadow: "none";
613
614
  paddingBlock: "16";
614
615
  paddingInline: "16";
615
616
  };
617
+ view: {
618
+ gap: "16";
619
+ };
620
+ tableHeader: {
621
+ height: "40";
622
+ maxWidth: "none";
623
+ minWidth: number;
624
+ textStyle: "body/lg/regular";
625
+ width: "auto";
626
+ };
627
+ tableCellTrigger: {
628
+ height: "40";
629
+ textStyle: "body/lg/regular";
630
+ };
616
631
  };
617
632
  };
618
633
  }>;
@@ -703,6 +718,88 @@ declare const slotRecipes: {
703
718
  height: "16";
704
719
  } | undefined;
705
720
  };
721
+ lg: {
722
+ trigger: {
723
+ height: "40";
724
+ paddingBlock: "8";
725
+ paddingInlineEnd: "12";
726
+ paddingInlineStart: "16";
727
+ textStyle: "body/lg/regular";
728
+ '&:has([data-slot="avatar"])'?: {
729
+ paddingBlock: `${number}rem`;
730
+ paddingInlineStart: `${number}rem`;
731
+ } | undefined;
732
+ };
733
+ indicator: {
734
+ _icon: {
735
+ width: "16";
736
+ height: "16";
737
+ };
738
+ };
739
+ checkbox?: {
740
+ width: "24";
741
+ height: "24";
742
+ } | undefined;
743
+ item?: {
744
+ '&:has([data-slot="avatar"])': {
745
+ paddingInlineStart: "12";
746
+ paddingInlineEnd: "24";
747
+ paddingBlock: "8";
748
+ gap: "8";
749
+ };
750
+ '&:has([data-slot="checkbox"])': {
751
+ minHeight: "48";
752
+ paddingInlineEnd: "24";
753
+ paddingBlock: "12";
754
+ gap: "12";
755
+ };
756
+ paddingInline: "16";
757
+ paddingBlock: "12";
758
+ textStyle: "body/lg/regular";
759
+ _selected: {
760
+ textStyle: "body/lg/semibold";
761
+ };
762
+ } | undefined;
763
+ content?: {
764
+ '--select-menu-list-max-height': `${number}rem`;
765
+ } | undefined;
766
+ itemLabel?: {
767
+ textStyle: "body/lg/regular";
768
+ lineHeight: "normal";
769
+ } | undefined;
770
+ itemLoadingLabel?: {
771
+ textStyle: "body/lg/regular";
772
+ } | undefined;
773
+ emptyState?: {
774
+ paddingBlock: "12";
775
+ } | undefined;
776
+ errorState?: {
777
+ paddingBlock: "8";
778
+ } | undefined;
779
+ errorLabel?: {
780
+ textStyle: "body/lg/regular";
781
+ } | undefined;
782
+ action?: {
783
+ minHeight: "48";
784
+ paddingBlock: "12";
785
+ textStyle: "body/lg/regular";
786
+ lineHeight: "normal";
787
+ } | undefined;
788
+ searchInputGroup?: {
789
+ height: `${number}rem`;
790
+ paddingBlock: "16";
791
+ } | undefined;
792
+ searchInput?: {
793
+ textStyle: "body/lg/regular";
794
+ } | undefined;
795
+ searchClear?: {
796
+ padding: "8";
797
+ } | undefined;
798
+ itemIndicator?: {
799
+ width: "24";
800
+ height: "24";
801
+ } | undefined;
802
+ };
706
803
  };
707
804
  }>;
708
805
  dialog: import('@chakra-ui/react').SlotRecipeDefinition<"content" | "body" | "footer" | "header" | "label" | "title" | "trigger" | "positioner" | "closeTrigger" | "description" | "scrollBody" | "scrollArea" | "scrollGradient" | "scrollButton" | "stepHeader" | "backdrop" | "stepDescription" | "stepTitle" | "stepTitleGroup", {
@@ -1084,6 +1181,42 @@ declare const slotRecipes: {
1084
1181
  };
1085
1182
  };
1086
1183
  }>;
1184
+ filter: import('@chakra-ui/react').SlotRecipeDefinition<"search" | "content" | "pattern" | "switch" | "icon" | "field" | "root" | "loading" | "items" | "searchInput" | "addSheetBackdrop" | "addSheetPositioner" | "addSheet" | "addMenu" | "addMenuLabel" | "addSheetItem" | "addMenuItem" | "addMenuIcon" | "addSheetItemReason" | "chip" | "chipLabel" | "chipTrigger" | "chipRemove" | "chipIcon" | "chipValue" | "chipChevron" | "fieldLabel" | "fieldControl" | "fieldTrigger" | "fieldRemove" | "fieldIcon" | "fieldValue" | "fieldChevron" | "mobilePanelHeader" | "popoverFooter" | "mobileFooter" | "popoverFooterStart" | "mobilePanelOverline" | "mobilePanelTitle" | "popoverContent" | "calendarFooter" | "mobileSearch" | "mobileSearchInput" | "popoverBody" | "checkboxList" | "popoverSearch" | "listHelperText" | "patternResults" | "patternResultsLabel" | "mobileListCheckbox" | "mobileListCheck" | "switchItem" | "switchItemText" | "filters" | "searchBlock" | "mobileBar" | "mobileTrigger" | "mobileHeader" | "mobileTitle" | "mobileBody", {
1185
+ pageLayout: {
1186
+ capped: {
1187
+ root: {
1188
+ borderBlockEndWidth: "1";
1189
+ borderColor: "border/regular";
1190
+ paddingInline: {
1191
+ base: "16";
1192
+ tablet: "32";
1193
+ };
1194
+ };
1195
+ };
1196
+ full: {
1197
+ root: {
1198
+ borderBlockEndWidth: "1";
1199
+ borderColor: "border/regular";
1200
+ paddingInlineEnd: {
1201
+ base: "16";
1202
+ tablet: "32";
1203
+ };
1204
+ paddingInlineStart: {
1205
+ base: "16";
1206
+ tablet: "24";
1207
+ };
1208
+ };
1209
+ };
1210
+ };
1211
+ contentAlign: {
1212
+ center: {};
1213
+ start: {
1214
+ root: {
1215
+ justifyContent: "flex-start";
1216
+ };
1217
+ };
1218
+ };
1219
+ }>;
1087
1220
  imageCropper: import('@chakra-ui/react').SlotRecipeDefinition<"grid" | "image" | "root" | "handle" | "viewport" | "selection", import('@chakra-ui/react').SlotRecipeVariantRecord<"grid" | "image" | "root" | "handle" | "viewport" | "selection">>;
1088
1221
  inlineLoading: import('@chakra-ui/react').SlotRecipeDefinition<"label" | "root", {
1089
1222
  size: {
@@ -1144,6 +1277,27 @@ declare const slotRecipes: {
1144
1277
  };
1145
1278
  };
1146
1279
  }>;
1280
+ listbox: import('@chakra-ui/react').SlotRecipeDefinition<"content" | "input" | "label" | "root" | "item" | "itemIndicator" | "itemGroup" | "itemGroupLabel" | "itemText" | "valueText" | "empty", {
1281
+ size: {
1282
+ md: {};
1283
+ lg: {
1284
+ content: {
1285
+ maxHeight: "none";
1286
+ paddingBlock: "8";
1287
+ };
1288
+ item: {
1289
+ minHeight: "48";
1290
+ textStyle: "body/lg/regular";
1291
+ _selected: {
1292
+ textStyle: "body/lg/regular";
1293
+ };
1294
+ };
1295
+ empty: {
1296
+ textStyle: "body/lg/regular";
1297
+ };
1298
+ };
1299
+ };
1300
+ }>;
1147
1301
  markdown: import('@chakra-ui/react').SlotRecipeDefinition<"blockquote" | "root", {
1148
1302
  size: {
1149
1303
  sm: {
@@ -3050,7 +3204,7 @@ declare const slotRecipes: {
3050
3204
  md: {};
3051
3205
  };
3052
3206
  }>;
3053
- tag: import('@chakra-ui/react').SlotRecipeDefinition<"label" | "root" | "closeTrigger" | "startElement" | "endElement", {
3207
+ tag: import('@chakra-ui/react').SlotRecipeDefinition<"label" | "root" | "closeTrigger" | "endElement" | "startElement", {
3054
3208
  colorVariant: {
3055
3209
  neutral: {
3056
3210
  root: {
@@ -3544,7 +3698,6 @@ declare const slotRecipes: {
3544
3698
  };
3545
3699
  };
3546
3700
  }>;
3547
- uiHeader: import('@chakra-ui/react').SlotRecipeDefinition<"search" | "badge" | "banner" | "bar" | "root" | "indicator" | "spacer" | "control" | "searchInput" | "actions" | "account" | "navButton" | "accountAvatar" | "accountIcon" | "navButtonBadge" | "navButtonIcon" | "searchButton" | "searchField" | "searchIcon" | "leading" | "logoLink" | "logoBlock", import('@chakra-ui/react').SlotRecipeVariantRecord<"search" | "badge" | "banner" | "bar" | "root" | "indicator" | "spacer" | "control" | "searchInput" | "actions" | "account" | "navButton" | "accountAvatar" | "accountIcon" | "navButtonBadge" | "navButtonIcon" | "searchButton" | "searchField" | "searchIcon" | "leading" | "logoLink" | "logoBlock">>;
3548
3701
  uiSideNav: import('@chakra-ui/react').SlotRecipeDefinition<"link" | "content" | "body" | "footer" | "closeButton" | "root" | "item" | "itemIndicator" | "positioner" | "itemLabel" | "itemIcon" | "backdrop" | "footerSeparator" | "footerHeading" | "linkIconBlock" | "linkTextBlock" | "linkIcon" | "linkStatusDot" | "linkLabel" | "linkSecondaryText" | "workspaceRoot" | "workspaceControl" | "workspace" | "workspaceTextBlock" | "workspaceChevron" | "workspaceMenu" | "workspaceLabel" | "workspaceValue", {
3549
3702
  layout: {
3550
3703
  rail: {
@@ -1,6 +1,5 @@
1
1
  import avatarSlotRecipe from "./Avatar.recipe.js";
2
2
  import numberInputSlotRecipe from "./NumberInput.recipe.js";
3
- import uiHeaderSlotRecipe from "./UIHeader.recipe.js";
4
3
  import uiSideNavSlotRecipe from "./UISideNav.recipe.js";
5
4
  import accordionSlotRecipe from "./Accordion.recipe.js";
6
5
  import actionBarSlotRecipe from "./ActionBar.recipe.js";
@@ -23,11 +22,13 @@ import expandableCardSlotRecipe from "./ExpandableCard.recipe.js";
23
22
  import fieldSlotRecipe from "./Field.recipe.js";
24
23
  import fieldsetSlotRecipe from "./Fieldset.recipe.js";
25
24
  import fileUploadSlotRecipe from "./FileUpload.recipe.js";
25
+ import filterSlotRecipe from "./Filter.recipe.js";
26
26
  import groupHeadingRecipe from "./GroupHeading.recipe.js";
27
27
  import imageCropperSlotRecipe from "./ImageCropper.recipe.js";
28
28
  import inlineLoadingRecipe from "./InlineLoading.recipe.js";
29
29
  import labeledDataSlotRecipe from "./LabeledData.recipe.js";
30
30
  import listSlotRecipe from "./List.recipe.js";
31
+ import listboxSlotRecipe from "./Listbox.recipe.js";
31
32
  import markdownSlotRecipe from "./Markdown.recipe.js";
32
33
  import markdownCardSlotRecipe from "./MarkdownCard.recipe.js";
33
34
  import menuSlotRecipe from "./Menu.recipe.js";
@@ -88,9 +89,11 @@ var slotRecipes = {
88
89
  groupHeading: groupHeadingRecipe,
89
90
  fieldset: fieldsetSlotRecipe,
90
91
  fileUpload: fileUploadSlotRecipe,
92
+ filter: filterSlotRecipe,
91
93
  imageCropper: imageCropperSlotRecipe,
92
94
  inlineLoading: inlineLoadingRecipe,
93
95
  list: listSlotRecipe,
96
+ listbox: listboxSlotRecipe,
94
97
  markdown: markdownSlotRecipe,
95
98
  markdownCard: markdownCardSlotRecipe,
96
99
  menu: menuSlotRecipe,
@@ -130,7 +133,6 @@ var slotRecipes = {
130
133
  tooltip: tooltipSlotRecipe,
131
134
  tour: tourSlotRecipe,
132
135
  treeView: treeViewSlotRecipe,
133
- uiHeader: uiHeaderSlotRecipe,
134
136
  uiSideNav: uiSideNavSlotRecipe
135
137
  };
136
138
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../lib/theme/slot-recipes/index.ts"],"sourcesContent":["import accordionSlotRecipe from './Accordion.recipe.ts';\nimport actionBarSlotRecipe from './ActionBar.recipe.ts';\nimport alertSlotRecipe from './Alert.recipe.ts';\nimport avatarSlotRecipe from './Avatar.recipe.ts';\nimport breadcrumbSlotRecipe from './Breadcrumb.recipe.ts';\nimport cardSlotRecipe from './Card.recipe';\nimport checkboxSlotRecipe from './Checkbox.recipe';\nimport codeSnippetSlotRecipe from './CodeSnippet.recipe.ts';\nimport collapsibleSlotRecipe from './Collapsible.recipe.ts';\nimport comboboxSlotRecipe from './Combobox.recipe.ts';\nimport dataWidgetSlotRecipe from './DataWidget.recipe.ts';\nimport datePickerSlotRecipe from './DatePicker.recipe.ts';\nimport datePickerSelectSlotRecipe from './DatePickerSelect.recipe.ts';\nimport dialogSlotRecipe from './Dialog.recipe.ts';\nimport draggableCardSlotRecipe from './DraggableCard.recipe.ts';\nimport drawerSlotRecipe from './Drawer.recipe.ts';\nimport emptyStateSlotRecipe from './EmptyState.recipe';\nimport expandableCardSlotRecipe from './ExpandableCard.recipe.ts';\nimport fieldSlotRecipe from './Field.recipe';\nimport fieldsetSlotRecipe from './Fieldset.recipe.ts';\nimport fileUploadSlotRecipe from './FileUpload.recipe.ts';\nimport groupHeadingSlotRecipe from './GroupHeading.recipe.ts';\nimport imageCropperSlotRecipe from './ImageCropper.recipe.ts';\nimport inlineLoadingSlotRecipe from './InlineLoading.recipe.ts';\nimport labeledDataSlotRecipe from './LabeledData.recipe.ts';\nimport listSlotRecipe from './List.recipe.ts';\nimport markdownSlotRecipe from './Markdown.recipe.ts';\nimport markdownCardSlotRecipe from './MarkdownCard.recipe.ts';\nimport menuSlotRecipe from './Menu.recipe.ts';\nimport multiselectSlotRecipe from './Multiselect.recipe.ts';\nimport nativeSelectSlotRecipe from './NativeSelect.recipe.ts';\nimport noteCardSlotRecipe from './NoteCard.recipe.ts';\nimport numberInputSlotRecipe from './NumberInput.recipe';\nimport overflowContentSlotRecipe from './OverflowContent.recipe.ts';\nimport pageFooterSlotRecipe from './PageFooter.recipe.ts';\nimport pageHeaderSlotRecipe from './PageHeader.recipe.ts';\nimport pageSidebarSlotRecipe from './PageSidebar.recipe.ts';\nimport paginationSlotRecipe from './Pagination.recipe.ts';\nimport paginationLoadMoreSlotRecipe from './PaginationLoadMore.recipe.ts';\nimport popoverSlotRecipe from './Popover.recipe.ts';\nimport progressSlotRecipe from './Progress.recipe.ts';\nimport qrCodeSlotRecipe from './QrCode.recipe.ts';\nimport radioGroupSlotRecipe from './RadioGroup.recipe.ts';\nimport ribbonSlotRecipe from './Ribbon.recipe.ts';\nimport sectionHeadingSlotRecipe from './SectionHeading.recipe.ts';\nimport segmentGroupSlotRecipe from './SegmentGroup.recipe.ts';\nimport { selectSlotRecipe } from './Select.recipe.ts';\nimport settingsCardSlotRecipe from './SettingsCard.recipe.ts';\nimport splitButtonSlotRecipe from './SplitButton.recipe.ts';\nimport statSlotRecipe from './Stat.recipe.ts';\nimport stepCardSlotRecipe from './StepCard.recipe.ts';\nimport stepsSlotRecipe from './Steps.recipe.ts';\nimport switchSlotRecipe from './Switch.recipe';\nimport tableSlotRecipe from './Table.recipe.ts';\nimport tableCardSlotRecipe from './TableCard.recipe.ts';\nimport tabsSlotRecipe from './Tabs.recipe';\nimport tagSlotRecipe from './Tag.recipe.ts';\nimport tagsInputSlotRecipe from './TagsInput.recipe.ts';\nimport textInputSlotRecipe from './TextInput.recipe.ts';\nimport toastSlotRecipe from './Toast.recipe';\nimport toggletipSlotRecipe from './Toggletip.recipe';\nimport tooltipSlotRecipe from './Tooltip.recipe';\nimport tourSlotRecipe from './Tour.recipe.ts';\nimport treeViewSlotRecipe from './TreeView.recipe.ts';\nimport uiHeaderSlotRecipe from './UIHeader.recipe';\nimport uiSideNavSlotRecipe from './UISideNav.recipe.ts';\n\nconst slotRecipes = {\n accordion: accordionSlotRecipe,\n actionBar: actionBarSlotRecipe,\n alert: alertSlotRecipe,\n avatar: avatarSlotRecipe,\n breadcrumb: breadcrumbSlotRecipe,\n card: cardSlotRecipe,\n checkbox: checkboxSlotRecipe,\n codeSnippet: codeSnippetSlotRecipe,\n collapsible: collapsibleSlotRecipe,\n combobox: comboboxSlotRecipe,\n dataWidget: dataWidgetSlotRecipe,\n datePicker: datePickerSlotRecipe,\n datePickerSelect: datePickerSelectSlotRecipe,\n dialog: dialogSlotRecipe,\n draggableCard: draggableCardSlotRecipe,\n drawer: drawerSlotRecipe,\n emptyState: emptyStateSlotRecipe,\n expandableCard: expandableCardSlotRecipe,\n field: fieldSlotRecipe,\n groupHeading: groupHeadingSlotRecipe,\n fieldset: fieldsetSlotRecipe,\n fileUpload: fileUploadSlotRecipe,\n imageCropper: imageCropperSlotRecipe,\n inlineLoading: inlineLoadingSlotRecipe,\n list: listSlotRecipe,\n markdown: markdownSlotRecipe,\n markdownCard: markdownCardSlotRecipe,\n menu: menuSlotRecipe,\n multiselect: multiselectSlotRecipe,\n noteCard: noteCardSlotRecipe,\n nativeSelect: nativeSelectSlotRecipe,\n numberInput: numberInputSlotRecipe,\n overflowContent: overflowContentSlotRecipe,\n pageFooter: pageFooterSlotRecipe,\n pageHeader: pageHeaderSlotRecipe,\n pageSidebar: pageSidebarSlotRecipe,\n pagination: paginationSlotRecipe,\n paginationLoadMore: paginationLoadMoreSlotRecipe,\n popover: popoverSlotRecipe,\n progress: progressSlotRecipe,\n qrCode: qrCodeSlotRecipe,\n radioGroup: radioGroupSlotRecipe,\n ribbon: ribbonSlotRecipe,\n sectionHeading: sectionHeadingSlotRecipe,\n labeledData: labeledDataSlotRecipe,\n segmentGroup: segmentGroupSlotRecipe,\n select: selectSlotRecipe,\n settingsCard: settingsCardSlotRecipe,\n splitButton: splitButtonSlotRecipe,\n stat: statSlotRecipe,\n stepsCard: stepCardSlotRecipe,\n steps: stepsSlotRecipe,\n switch: switchSlotRecipe,\n table: tableSlotRecipe,\n tableCard: tableCardSlotRecipe,\n tabs: tabsSlotRecipe,\n tag: tagSlotRecipe,\n tagsInput: tagsInputSlotRecipe,\n textInput: textInputSlotRecipe,\n toast: toastSlotRecipe,\n toggletip: toggletipSlotRecipe,\n tooltip: tooltipSlotRecipe,\n tour: tourSlotRecipe,\n treeView: treeViewSlotRecipe,\n uiHeader: uiHeaderSlotRecipe,\n uiSideNav: uiSideNavSlotRecipe,\n};\n\nexport default slotRecipes;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEA,IAAM,cAAc;CAClB,WAAW;CACX,WAAW;CACX,OAAO;CACP,QAAQ;CACR,YAAY;CACZ,MAAM;CACN,UAAU;CACV,aAAa;CACb,aAAa;CACb,UAAU;CACV,YAAY;CACZ,YAAY;CACZ,kBAAkB;CAClB,QAAQ;CACR,eAAe;CACf,QAAQ;CACR,YAAY;CACZ,gBAAgB;CAChB,OAAO;CACP,cAAc;CACd,UAAU;CACV,YAAY;CACZ,cAAc;CACd,eAAe;CACf,MAAM;CACN,UAAU;CACV,cAAc;CACd,MAAM;CACN,aAAa;CACb,UAAU;CACV,cAAc;CACd,aAAa;CACb,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,YAAY;CACZ,oBAAoB;CACpB,SAAS;CACT,UAAU;CACV,QAAQ;CACR,YAAY;CACZ,QAAQ;CACR,gBAAgB;CAChB,aAAa;CACb,cAAc;CACd,QAAQ;CACR,cAAc;CACd,aAAa;CACb,MAAM;CACN,WAAW;CACX,OAAO;CACP,QAAQ;CACR,OAAO;CACP,WAAW;CACX,MAAM;CACN,KAAK;CACL,WAAW;CACX,WAAW;CACX,OAAO;CACP,WAAW;CACX,SAAS;CACT,MAAM;CACN,UAAU;CACV,UAAU;CACV,WAAW;AACb"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../lib/theme/slot-recipes/index.ts"],"sourcesContent":["import accordionSlotRecipe from './Accordion.recipe.ts';\nimport actionBarSlotRecipe from './ActionBar.recipe.ts';\nimport alertSlotRecipe from './Alert.recipe.ts';\nimport avatarSlotRecipe from './Avatar.recipe.ts';\nimport breadcrumbSlotRecipe from './Breadcrumb.recipe.ts';\nimport cardSlotRecipe from './Card.recipe';\nimport checkboxSlotRecipe from './Checkbox.recipe';\nimport codeSnippetSlotRecipe from './CodeSnippet.recipe.ts';\nimport collapsibleSlotRecipe from './Collapsible.recipe.ts';\nimport comboboxSlotRecipe from './Combobox.recipe.ts';\nimport dataWidgetSlotRecipe from './DataWidget.recipe.ts';\nimport datePickerSlotRecipe from './DatePicker.recipe.ts';\nimport datePickerSelectSlotRecipe from './DatePickerSelect.recipe.ts';\nimport dialogSlotRecipe from './Dialog.recipe.ts';\nimport draggableCardSlotRecipe from './DraggableCard.recipe.ts';\nimport drawerSlotRecipe from './Drawer.recipe.ts';\nimport emptyStateSlotRecipe from './EmptyState.recipe';\nimport expandableCardSlotRecipe from './ExpandableCard.recipe.ts';\nimport fieldSlotRecipe from './Field.recipe';\nimport fieldsetSlotRecipe from './Fieldset.recipe.ts';\nimport fileUploadSlotRecipe from './FileUpload.recipe.ts';\nimport filterSlotRecipe from './Filter.recipe.ts';\nimport groupHeadingSlotRecipe from './GroupHeading.recipe.ts';\nimport imageCropperSlotRecipe from './ImageCropper.recipe.ts';\nimport inlineLoadingSlotRecipe from './InlineLoading.recipe.ts';\nimport labeledDataSlotRecipe from './LabeledData.recipe.ts';\nimport listSlotRecipe from './List.recipe.ts';\nimport listboxSlotRecipe from './Listbox.recipe.ts';\nimport markdownSlotRecipe from './Markdown.recipe.ts';\nimport markdownCardSlotRecipe from './MarkdownCard.recipe.ts';\nimport menuSlotRecipe from './Menu.recipe.ts';\nimport multiselectSlotRecipe from './Multiselect.recipe.ts';\nimport nativeSelectSlotRecipe from './NativeSelect.recipe.ts';\nimport noteCardSlotRecipe from './NoteCard.recipe.ts';\nimport numberInputSlotRecipe from './NumberInput.recipe';\nimport overflowContentSlotRecipe from './OverflowContent.recipe.ts';\nimport pageFooterSlotRecipe from './PageFooter.recipe.ts';\nimport pageHeaderSlotRecipe from './PageHeader.recipe.ts';\nimport pageSidebarSlotRecipe from './PageSidebar.recipe.ts';\nimport paginationSlotRecipe from './Pagination.recipe.ts';\nimport paginationLoadMoreSlotRecipe from './PaginationLoadMore.recipe.ts';\nimport popoverSlotRecipe from './Popover.recipe.ts';\nimport progressSlotRecipe from './Progress.recipe.ts';\nimport qrCodeSlotRecipe from './QrCode.recipe.ts';\nimport radioGroupSlotRecipe from './RadioGroup.recipe.ts';\nimport ribbonSlotRecipe from './Ribbon.recipe.ts';\nimport sectionHeadingSlotRecipe from './SectionHeading.recipe.ts';\nimport segmentGroupSlotRecipe from './SegmentGroup.recipe.ts';\nimport { selectSlotRecipe } from './Select.recipe.ts';\nimport settingsCardSlotRecipe from './SettingsCard.recipe.ts';\nimport splitButtonSlotRecipe from './SplitButton.recipe.ts';\nimport statSlotRecipe from './Stat.recipe.ts';\nimport stepCardSlotRecipe from './StepCard.recipe.ts';\nimport stepsSlotRecipe from './Steps.recipe.ts';\nimport switchSlotRecipe from './Switch.recipe';\nimport tableSlotRecipe from './Table.recipe.ts';\nimport tableCardSlotRecipe from './TableCard.recipe.ts';\nimport tabsSlotRecipe from './Tabs.recipe';\nimport tagSlotRecipe from './Tag.recipe.ts';\nimport tagsInputSlotRecipe from './TagsInput.recipe.ts';\nimport textInputSlotRecipe from './TextInput.recipe.ts';\nimport toastSlotRecipe from './Toast.recipe';\nimport toggletipSlotRecipe from './Toggletip.recipe';\nimport tooltipSlotRecipe from './Tooltip.recipe';\nimport tourSlotRecipe from './Tour.recipe.ts';\nimport treeViewSlotRecipe from './TreeView.recipe.ts';\nimport uiSideNavSlotRecipe from './UISideNav.recipe.ts';\n\nconst slotRecipes = {\n accordion: accordionSlotRecipe,\n actionBar: actionBarSlotRecipe,\n alert: alertSlotRecipe,\n avatar: avatarSlotRecipe,\n breadcrumb: breadcrumbSlotRecipe,\n card: cardSlotRecipe,\n checkbox: checkboxSlotRecipe,\n codeSnippet: codeSnippetSlotRecipe,\n collapsible: collapsibleSlotRecipe,\n combobox: comboboxSlotRecipe,\n dataWidget: dataWidgetSlotRecipe,\n datePicker: datePickerSlotRecipe,\n datePickerSelect: datePickerSelectSlotRecipe,\n dialog: dialogSlotRecipe,\n draggableCard: draggableCardSlotRecipe,\n drawer: drawerSlotRecipe,\n emptyState: emptyStateSlotRecipe,\n expandableCard: expandableCardSlotRecipe,\n field: fieldSlotRecipe,\n groupHeading: groupHeadingSlotRecipe,\n fieldset: fieldsetSlotRecipe,\n fileUpload: fileUploadSlotRecipe,\n filter: filterSlotRecipe,\n imageCropper: imageCropperSlotRecipe,\n inlineLoading: inlineLoadingSlotRecipe,\n list: listSlotRecipe,\n listbox: listboxSlotRecipe,\n markdown: markdownSlotRecipe,\n markdownCard: markdownCardSlotRecipe,\n menu: menuSlotRecipe,\n multiselect: multiselectSlotRecipe,\n noteCard: noteCardSlotRecipe,\n nativeSelect: nativeSelectSlotRecipe,\n numberInput: numberInputSlotRecipe,\n overflowContent: overflowContentSlotRecipe,\n pageFooter: pageFooterSlotRecipe,\n pageHeader: pageHeaderSlotRecipe,\n pageSidebar: pageSidebarSlotRecipe,\n pagination: paginationSlotRecipe,\n paginationLoadMore: paginationLoadMoreSlotRecipe,\n popover: popoverSlotRecipe,\n progress: progressSlotRecipe,\n qrCode: qrCodeSlotRecipe,\n radioGroup: radioGroupSlotRecipe,\n ribbon: ribbonSlotRecipe,\n sectionHeading: sectionHeadingSlotRecipe,\n labeledData: labeledDataSlotRecipe,\n segmentGroup: segmentGroupSlotRecipe,\n select: selectSlotRecipe,\n settingsCard: settingsCardSlotRecipe,\n splitButton: splitButtonSlotRecipe,\n stat: statSlotRecipe,\n stepsCard: stepCardSlotRecipe,\n steps: stepsSlotRecipe,\n switch: switchSlotRecipe,\n table: tableSlotRecipe,\n tableCard: tableCardSlotRecipe,\n tabs: tabsSlotRecipe,\n tag: tagSlotRecipe,\n tagsInput: tagsInputSlotRecipe,\n textInput: textInputSlotRecipe,\n toast: toastSlotRecipe,\n toggletip: toggletipSlotRecipe,\n tooltip: tooltipSlotRecipe,\n tour: tourSlotRecipe,\n treeView: treeViewSlotRecipe,\n uiSideNav: uiSideNavSlotRecipe,\n};\n\nexport default slotRecipes;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA,IAAM,cAAc;CAClB,WAAW;CACX,WAAW;CACX,OAAO;CACP,QAAQ;CACR,YAAY;CACZ,MAAM;CACN,UAAU;CACV,aAAa;CACb,aAAa;CACb,UAAU;CACV,YAAY;CACZ,YAAY;CACZ,kBAAkB;CAClB,QAAQ;CACR,eAAe;CACf,QAAQ;CACR,YAAY;CACZ,gBAAgB;CAChB,OAAO;CACP,cAAc;CACd,UAAU;CACV,YAAY;CACZ,QAAQ;CACR,cAAc;CACd,eAAe;CACf,MAAM;CACN,SAAS;CACT,UAAU;CACV,cAAc;CACd,MAAM;CACN,aAAa;CACb,UAAU;CACV,cAAc;CACd,aAAa;CACb,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,YAAY;CACZ,oBAAoB;CACpB,SAAS;CACT,UAAU;CACV,QAAQ;CACR,YAAY;CACZ,QAAQ;CACR,gBAAgB;CAChB,aAAa;CACb,cAAc;CACd,QAAQ;CACR,cAAc;CACd,aAAa;CACb,MAAM;CACN,WAAW;CACX,OAAO;CACP,QAAQ;CACR,OAAO;CACP,WAAW;CACX,MAAM;CACN,KAAK;CACL,WAAW;CACX,WAAW;CACX,OAAO;CACP,WAAW;CACX,SAAS;CACT,MAAM;CACN,UAAU;CACV,WAAW;AACb"}
@@ -1,7 +1,8 @@
1
- import { createContext } from "react";
1
+ import { createContext, useContext } from "react";
2
2
  //#region lib/utilities/BitkitPortalContext.ts
3
3
  var BitkitPortalContext = createContext({ disablePortal: false });
4
+ var usePortalContext = () => useContext(BitkitPortalContext);
4
5
  //#endregion
5
- export { BitkitPortalContext as default };
6
+ export { BitkitPortalContext as default, usePortalContext };
6
7
 
7
8
  //# sourceMappingURL=BitkitPortalContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BitkitPortalContext.js","names":[],"sources":["../../lib/utilities/BitkitPortalContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nconst BitkitPortalContext = createContext({ disablePortal: false });\n\nexport const usePortalContext = () => useContext(BitkitPortalContext);\n\nexport default BitkitPortalContext;\n"],"mappings":";;AAEA,IAAM,sBAAsB,cAAc,EAAE,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"BitkitPortalContext.js","names":[],"sources":["../../lib/utilities/BitkitPortalContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nconst BitkitPortalContext = createContext({ disablePortal: false });\n\nexport const usePortalContext = () => useContext(BitkitPortalContext);\n\nexport default BitkitPortalContext;\n"],"mappings":";;AAEA,IAAM,sBAAsB,cAAc,EAAE,eAAe,MAAM,CAAC;AAElE,IAAa,yBAAyB,WAAW,mBAAmB"}
@@ -35,7 +35,7 @@ Migrate in this order to minimize blockers:
35
35
  2. **Atomic components**: `Button`, `Badge`, `Tag`, `Spinner`, `Toast`
36
36
  3. **Form components**: `Input`, `Textarea`, `Select`, `Checkbox`, `Switch`
37
37
  4. **Layout & navigation**: `Sidebar`, `Breadcrumb`
38
- 5. **Composite components**: `Dialog`, `Tabs`, `Table`, `Card`, `Alert`
38
+ 5. **Composite components**: `Dialog`, `Tabs`, `Table`, `Card`, `Alert`, `Filter`
39
39
  6. **Icons** (if migrating from `lucide-react` or similar)
40
40
  7. **Dependency cleanup**: remove v1 and all now-unused peer deps
41
41
 
@@ -270,6 +270,53 @@ import { Table } from '@chakra-ui/react/table'
270
270
 
271
271
  For password fields with an eye-toggle: use `BitkitField` + Chakra v3 `InputGroup` with `endElement`.
272
272
 
273
+ ### Filter
274
+
275
+ v1's single `data` object becomes children: each filter is a controlled sub-component with its own `value` and `onValueChange`.
276
+
277
+ ```tsx
278
+ // v1
279
+ <Filter data={{ project: {...}, date_range: { type: 'dateRange' }, branch: { type: 'tag', isPatternEnabled: true } }} state={state} onChange={setState} showAdd showSearch />
280
+
281
+ // v2
282
+ <BitkitFilter>
283
+ <BitkitFilter.Select label="Project" pluralLabel="Projects" items={projects} value={project} onValueChange={setProject} />
284
+ <BitkitFilter.DateRange value={dates} onValueChange={setDates} />
285
+ <BitkitFilter.Add>
286
+ <BitkitFilter.Select label="Branch" pluralLabel="Branches" items={branches} multiple pattern value={branch} onValueChange={setBranch} />
287
+ </BitkitFilter.Add>
288
+ <BitkitFilter.Search value={search} onValueChange={setSearch} />
289
+ </BitkitFilter>
290
+ ```
291
+
292
+ | v1 | v2 |
293
+ |----|----|
294
+ | `state` / `onChange` | per-filter `value` / `onValueChange` |
295
+ | `defaultState` | per-filter `resetValue`; root `onClear` to reset everything in one write |
296
+ | `type: 'select'`, `isMultiple` | `BitkitFilter.Select`, `multiple` |
297
+ | `type: 'switch'`, `allOptionLabel` | `BitkitFilter.Switch`, `allLabel` |
298
+ | `type: 'dateRange'`, `selectable`, `dayTooltip` | `BitkitFilter.DateRange`, `min` / `max`, `dayTooltip` (now `(date: Date) => string \| undefined`; v1 passed `{ date, selectable }` with a luxon `DateTime`) |
299
+ | `type: 'tag'`, `showAdd` | `BitkitFilter.Select` inside `BitkitFilter.Add` |
300
+ | `showSearch`, `searchTooltip`, `state.search = [text]` | `BitkitFilter.Search`, `tooltip`, `value: string` |
301
+ | `options`, `optionsMap`, `iconsMap`, `iconColorsMap` | `items: { value, label, icon?, iconColor? }[]` |
302
+ | `categoryName`, `categoryNamePlural`, `unfilteredLabel` | `label`, `pluralLabel` (required), `emptyLabel` |
303
+ | `onAsyncSearch` | `onSearchChange` + `items` + `loading` |
304
+ | `isInitialLoading`, `loadingText` | `loading`, `loadingLabel` |
305
+ | `isPatternEnabled` | `pattern` |
306
+ | `hasNotFilteredOption: false` | `required`, with the default as `resetValue` |
307
+ | `preserveOptionOrder` | `preserveOrder` |
308
+ | `dependsOn`, `filtersDependOn` | `disabledReason`; clear the dependent filter in the parent's `onValueChange` |
309
+ | `isLoading` | `state="loading"` |
310
+ | `isMobile` | `device` |
311
+ | `showFilterIcon`, `showClearFilters` | `showIcon`, `showClear` |
312
+
313
+ Things that behave differently:
314
+ - **Mobile is automatic** below the tablet breakpoint. v1 was opt-in; pass `device="desktop"` where a page relied on that.
315
+ - **`onSearchChange` returns nothing.** Fetch yourself and pass the results as `items`, with `loading` meanwhile. It is debounced (300ms), but dropping out-of-order responses is up to you.
316
+ - **Values are typed per filter**: `string | null` for a switch (`null` = "All"), `[start, end] | null` of `Date`s for a date range, `string[]` for a select, a plain `string` for the search.
317
+ - **`iconColor` takes an `icon/*` token**, e.g. `icon/positive` instead of `status/success/icon`.
318
+ - **"Clear filters" only resets the filters that changed**, each through its own `onValueChange`. A URL-backed page should pass `onClear`, or it gets one history entry per filter.
319
+
273
320
  ### Cards
274
321
 
275
322
  | v1 | v2 |
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bitrise/bitkit-v2",
3
3
  "private": false,
4
- "version": "0.3.475-beta.3009",
4
+ "version": "0.3.475-beta.3012",
5
5
  "description": "Bitrise Design System Components built with Chakra UI V3",
6
6
  "keywords": [
7
7
  "react",
@@ -1,37 +0,0 @@
1
- import { BoxProps } from '@chakra-ui/react/box';
2
- import { ReactNode } from 'react';
3
- export interface BitkitUIHeaderProps extends Omit<BoxProps, 'children'> {
4
- /**
5
- * Content below the bar, inside the header itself — account-wide notices and the like. It is
6
- * part of the header rather than the page, so a pinned header keeps it pinned too, and a page
7
- * reserving room for the header has one element to measure.
8
- */
9
- banner?: ReactNode;
10
- /** The trailing controls, in the order they should appear. */
11
- children?: ReactNode;
12
- /**
13
- * The slot before the logo, shown only below the `tablet` breakpoint. It takes a
14
- * `BitkitUIHeader.NavButton`, which opens the navigation drawer, or a `BitkitUIHeader.Control`
15
- * for an account with no workspace to navigate yet.
16
- *
17
- * It is a slot rather than a child because the design fixes where it goes: children all land in
18
- * the trailing cluster, on the far side of the logo.
19
- */
20
- leading?: ReactNode;
21
- /** Where the logo links to. */
22
- logoHref?: string;
23
- }
24
- export { uiHeaderHeight } from '../../theme/slot-recipes/UIHeader.recipe';
25
- export { type BitkitUIHeaderAccountProps } from './UIHeaderAccount';
26
- export { type BitkitUIHeaderButtonProps } from './UIHeaderButton';
27
- export { type BitkitUIHeaderControlAsAnchorProps, type BitkitUIHeaderControlAsButtonProps, type BitkitUIHeaderControlProps, } from './UIHeaderControl';
28
- export { type BitkitUIHeaderNavButtonProps } from './UIHeaderNavButton';
29
- export { type BitkitUIHeaderSearchProps } from './UIHeaderSearch';
30
- declare const _default: import('react').ForwardRefExoticComponent<BitkitUIHeaderProps & import('react').RefAttributes<HTMLElement>> & {
31
- Account: import('react').ForwardRefExoticComponent<import('./UIHeaderAccount').BitkitUIHeaderAccountProps & import('react').RefAttributes<HTMLButtonElement>>;
32
- Button: import('react').ForwardRefExoticComponent<import('./UIHeaderButton').BitkitUIHeaderButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
33
- Control: import('react').ForwardRefExoticComponent<import('./UIHeaderControl').BitkitUIHeaderControlProps & import('react').RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
34
- NavButton: import('react').ForwardRefExoticComponent<import('./UIHeaderNavButton').BitkitUIHeaderNavButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
35
- Search: import('react').ForwardRefExoticComponent<import('./UIHeaderSearch').BitkitUIHeaderSearchProps & import('react').RefAttributes<HTMLDivElement>>;
36
- };
37
- export default _default;