@heymantle/litho 0.0.4 → 0.0.5

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 (146) hide show
  1. package/dist/cjs/components/Autocomplete.js +23 -12
  2. package/dist/cjs/components/Button.js +44 -6
  3. package/dist/cjs/components/Card.js +1 -0
  4. package/dist/cjs/components/ColorField.js +2 -2
  5. package/dist/cjs/components/EmptyState.js +2 -2
  6. package/dist/cjs/components/Filters.js +4 -3
  7. package/dist/cjs/components/Frame.js +9 -9
  8. package/dist/cjs/components/HorizontalStack.js +9 -2
  9. package/dist/cjs/components/Icon.js +1 -0
  10. package/dist/cjs/components/List.js +3 -3
  11. package/dist/cjs/components/Pane.js +61 -17
  12. package/dist/cjs/components/Stack.js +223 -0
  13. package/dist/cjs/components/Table.js +1 -1
  14. package/dist/cjs/components/Tabs.js +41 -11
  15. package/dist/cjs/components/VerticalStack.js +8 -2
  16. package/dist/cjs/index.js +4 -0
  17. package/dist/cjs/stories/ActionList.stories.js +1 -1
  18. package/dist/cjs/stories/Autocomplete.stories.js +20 -17
  19. package/dist/cjs/stories/Box.stories.js +14 -12
  20. package/dist/cjs/stories/ButtonGroup.stories.js +5 -5
  21. package/dist/cjs/stories/Card.stories.js +8 -8
  22. package/dist/cjs/stories/Checkbox.stories.js +3 -3
  23. package/dist/cjs/stories/ChoiceList.stories.js +13 -12
  24. package/dist/cjs/stories/Collapsible.stories.js +51 -39
  25. package/dist/cjs/stories/ColorField.stories.js +23 -19
  26. package/dist/cjs/stories/ContextualSaveBar.stories.js +15 -14
  27. package/dist/cjs/stories/DatePicker.stories.js +3 -3
  28. package/dist/cjs/stories/Divider.stories.js +64 -57
  29. package/dist/cjs/stories/DropZone.stories.js +25 -20
  30. package/dist/cjs/stories/Filters.stories.js +62 -60
  31. package/dist/cjs/stories/FooterHelp.stories.js +36 -31
  32. package/dist/cjs/stories/Form.stories.js +23 -20
  33. package/dist/cjs/stories/Grid.stories.js +58 -58
  34. package/dist/cjs/stories/Icon.stories.js +31 -28
  35. package/dist/cjs/stories/Image.stories.js +36 -36
  36. package/dist/cjs/stories/InlineError.stories.js +35 -34
  37. package/dist/cjs/stories/Label.stories.js +59 -59
  38. package/dist/cjs/stories/Layout.stories.js +44 -42
  39. package/dist/cjs/stories/LayoutSection.stories.js +114 -106
  40. package/dist/cjs/stories/Link.stories.js +14 -12
  41. package/dist/cjs/stories/List.stories.js +67 -50
  42. package/dist/cjs/stories/Listbox.stories.js +26 -22
  43. package/dist/cjs/stories/Loading.stories.js +59 -50
  44. package/dist/cjs/stories/Modal.stories.js +7 -7
  45. package/dist/cjs/stories/Page.stories.js +38 -29
  46. package/dist/cjs/stories/Pane.stories.js +135 -120
  47. package/dist/cjs/stories/Popover.stories.js +12 -8
  48. package/dist/cjs/stories/PopoverManager.stories.js +91 -83
  49. package/dist/cjs/stories/ProgressBar.stories.js +61 -54
  50. package/dist/cjs/stories/RadioButtonCard.stories.js +21 -21
  51. package/dist/cjs/stories/RangeSlider.stories.js +44 -40
  52. package/dist/cjs/stories/ResourceList.stories.js +46 -37
  53. package/dist/cjs/stories/SkeletonText.stories.js +23 -22
  54. package/dist/cjs/stories/Spinner.stories.js +46 -39
  55. package/dist/cjs/stories/Stack.stories.js +1397 -0
  56. package/dist/cjs/stories/Tabs.stories.js +1 -2
  57. package/dist/cjs/stories/Tag.stories.js +44 -36
  58. package/dist/cjs/stories/Thumbnail.stories.js +42 -38
  59. package/dist/cjs/stories/TimePicker.stories.js +33 -32
  60. package/dist/cjs/stories/Tip.stories.js +21 -21
  61. package/dist/cjs/stories/TopBar.stories.js +7 -5
  62. package/dist/esm/components/Autocomplete.js +23 -12
  63. package/dist/esm/components/Button.js +44 -6
  64. package/dist/esm/components/Card.js +1 -0
  65. package/dist/esm/components/ColorField.js +2 -2
  66. package/dist/esm/components/EmptyState.js +2 -2
  67. package/dist/esm/components/Filters.js +4 -3
  68. package/dist/esm/components/Frame.js +9 -9
  69. package/dist/esm/components/HorizontalStack.js +9 -2
  70. package/dist/esm/components/Icon.js +1 -0
  71. package/dist/esm/components/List.js +3 -3
  72. package/dist/esm/components/Pane.js +62 -18
  73. package/dist/esm/components/Stack.js +213 -0
  74. package/dist/esm/components/Table.js +1 -1
  75. package/dist/esm/components/Tabs.js +41 -11
  76. package/dist/esm/components/VerticalStack.js +8 -2
  77. package/dist/esm/index.js +1 -0
  78. package/dist/esm/stories/ActionList.stories.js +1 -1
  79. package/dist/esm/stories/Autocomplete.stories.js +20 -17
  80. package/dist/esm/stories/Box.stories.js +14 -12
  81. package/dist/esm/stories/ButtonGroup.stories.js +5 -5
  82. package/dist/esm/stories/Card.stories.js +8 -8
  83. package/dist/esm/stories/Checkbox.stories.js +3 -3
  84. package/dist/esm/stories/ChoiceList.stories.js +13 -12
  85. package/dist/esm/stories/Collapsible.stories.js +51 -39
  86. package/dist/esm/stories/ColorField.stories.js +23 -19
  87. package/dist/esm/stories/ContextualSaveBar.stories.js +15 -14
  88. package/dist/esm/stories/DatePicker.stories.js +3 -3
  89. package/dist/esm/stories/Divider.stories.js +64 -57
  90. package/dist/esm/stories/DropZone.stories.js +25 -20
  91. package/dist/esm/stories/Filters.stories.js +62 -60
  92. package/dist/esm/stories/FooterHelp.stories.js +36 -31
  93. package/dist/esm/stories/Form.stories.js +23 -20
  94. package/dist/esm/stories/Grid.stories.js +58 -58
  95. package/dist/esm/stories/Icon.stories.js +31 -28
  96. package/dist/esm/stories/Image.stories.js +36 -36
  97. package/dist/esm/stories/InlineError.stories.js +27 -26
  98. package/dist/esm/stories/Label.stories.js +59 -59
  99. package/dist/esm/stories/Layout.stories.js +44 -42
  100. package/dist/esm/stories/LayoutSection.stories.js +114 -106
  101. package/dist/esm/stories/Link.stories.js +14 -12
  102. package/dist/esm/stories/List.stories.js +67 -50
  103. package/dist/esm/stories/Listbox.stories.js +12 -8
  104. package/dist/esm/stories/Loading.stories.js +59 -50
  105. package/dist/esm/stories/Modal.stories.js +7 -7
  106. package/dist/esm/stories/Page.stories.js +7 -3
  107. package/dist/esm/stories/Pane.stories.js +95 -80
  108. package/dist/esm/stories/Popover.stories.js +12 -8
  109. package/dist/esm/stories/PopoverManager.stories.js +91 -83
  110. package/dist/esm/stories/ProgressBar.stories.js +61 -54
  111. package/dist/esm/stories/RadioButtonCard.stories.js +21 -21
  112. package/dist/esm/stories/RangeSlider.stories.js +34 -30
  113. package/dist/esm/stories/ResourceList.stories.js +46 -37
  114. package/dist/esm/stories/SkeletonText.stories.js +23 -22
  115. package/dist/esm/stories/Spinner.stories.js +40 -33
  116. package/dist/esm/stories/Stack.stories.js +1338 -0
  117. package/dist/esm/stories/Tabs.stories.js +1 -2
  118. package/dist/esm/stories/Tag.stories.js +27 -19
  119. package/dist/esm/stories/Thumbnail.stories.js +42 -38
  120. package/dist/esm/stories/TimePicker.stories.js +33 -32
  121. package/dist/esm/stories/Tip.stories.js +21 -21
  122. package/dist/esm/stories/TopBar.stories.js +7 -5
  123. package/dist/types/components/Autocomplete.d.ts +34 -29
  124. package/dist/types/components/Autocomplete.d.ts.map +1 -1
  125. package/dist/types/components/Button.d.ts +10 -0
  126. package/dist/types/components/Button.d.ts.map +1 -1
  127. package/dist/types/components/Card.d.ts +2 -0
  128. package/dist/types/components/Card.d.ts.map +1 -1
  129. package/dist/types/components/EmptyState.d.ts.map +1 -1
  130. package/dist/types/components/Filters.d.ts +3 -1
  131. package/dist/types/components/Filters.d.ts.map +1 -1
  132. package/dist/types/components/Frame.d.ts +3 -3
  133. package/dist/types/components/Frame.d.ts.map +1 -1
  134. package/dist/types/components/HorizontalStack.d.ts +2 -2
  135. package/dist/types/components/HorizontalStack.d.ts.map +1 -1
  136. package/dist/types/components/Icon.d.ts.map +1 -1
  137. package/dist/types/components/Pane.d.ts.map +1 -1
  138. package/dist/types/components/Stack.d.ts +49 -0
  139. package/dist/types/components/Stack.d.ts.map +1 -0
  140. package/dist/types/components/Tabs.d.ts +2 -0
  141. package/dist/types/components/Tabs.d.ts.map +1 -1
  142. package/dist/types/components/VerticalStack.d.ts +2 -2
  143. package/dist/types/components/VerticalStack.d.ts.map +1 -1
  144. package/dist/types/index.d.ts +1 -0
  145. package/index.css +11 -0
  146. package/package.json +2 -2
@@ -0,0 +1,223 @@
1
+ "use client";
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return _default;
10
+ }
11
+ });
12
+ var _jsxruntime = require("react/jsx-runtime");
13
+ var _tailwindvariants = require("tailwind-variants");
14
+ function _define_property(obj, key, value) {
15
+ if (key in obj) {
16
+ Object.defineProperty(obj, key, {
17
+ value: value,
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true
21
+ });
22
+ } else {
23
+ obj[key] = value;
24
+ }
25
+ return obj;
26
+ }
27
+ function _object_spread(target) {
28
+ for(var i = 1; i < arguments.length; i++){
29
+ var source = arguments[i] != null ? arguments[i] : {};
30
+ var ownKeys = Object.keys(source);
31
+ if (typeof Object.getOwnPropertySymbols === "function") {
32
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
33
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
34
+ }));
35
+ }
36
+ ownKeys.forEach(function(key) {
37
+ _define_property(target, key, source[key]);
38
+ });
39
+ }
40
+ return target;
41
+ }
42
+ function ownKeys(object, enumerableOnly) {
43
+ var keys = Object.keys(object);
44
+ if (Object.getOwnPropertySymbols) {
45
+ var symbols = Object.getOwnPropertySymbols(object);
46
+ if (enumerableOnly) {
47
+ symbols = symbols.filter(function(sym) {
48
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
49
+ });
50
+ }
51
+ keys.push.apply(keys, symbols);
52
+ }
53
+ return keys;
54
+ }
55
+ function _object_spread_props(target, source) {
56
+ source = source != null ? source : {};
57
+ if (Object.getOwnPropertyDescriptors) {
58
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
59
+ } else {
60
+ ownKeys(Object(source)).forEach(function(key) {
61
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
62
+ });
63
+ }
64
+ return target;
65
+ }
66
+ function _object_without_properties(source, excluded) {
67
+ if (source == null) return {};
68
+ var target = _object_without_properties_loose(source, excluded);
69
+ var key, i;
70
+ if (Object.getOwnPropertySymbols) {
71
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
72
+ for(i = 0; i < sourceSymbolKeys.length; i++){
73
+ key = sourceSymbolKeys[i];
74
+ if (excluded.indexOf(key) >= 0) continue;
75
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
76
+ target[key] = source[key];
77
+ }
78
+ }
79
+ return target;
80
+ }
81
+ function _object_without_properties_loose(source, excluded) {
82
+ if (source == null) return {};
83
+ var target = {};
84
+ var sourceKeys = Object.keys(source);
85
+ var key, i;
86
+ for(i = 0; i < sourceKeys.length; i++){
87
+ key = sourceKeys[i];
88
+ if (excluded.indexOf(key) >= 0) continue;
89
+ target[key] = source[key];
90
+ }
91
+ return target;
92
+ }
93
+ var styles = (0, _tailwindvariants.tv)({
94
+ base: "Litho-Stack flex",
95
+ variants: {
96
+ direction: {
97
+ vertical: "flex-col",
98
+ horizontal: "flex-row"
99
+ },
100
+ gap: {
101
+ // Semantic values (recommended)
102
+ none: "gap-0",
103
+ xs: "gap-1",
104
+ sm: "gap-2",
105
+ md: "gap-4",
106
+ lg: "gap-8",
107
+ // Numeric values (backwards compatibility)
108
+ "0": "gap-0",
109
+ "px": "gap-px",
110
+ "0.5": "gap-0.5",
111
+ "1": "gap-1",
112
+ "2": "gap-2",
113
+ "3": "gap-3",
114
+ "4": "gap-4",
115
+ "5": "gap-5",
116
+ "6": "gap-6",
117
+ "8": "gap-8",
118
+ "10": "gap-10"
119
+ },
120
+ align: {
121
+ start: "justify-start",
122
+ center: "justify-center",
123
+ end: "justify-end",
124
+ "space-between": "justify-between",
125
+ "space-evenly": "justify-evenly",
126
+ "space-around": "justify-around",
127
+ spaceBetween: "justify-between"
128
+ },
129
+ blockAlign: {
130
+ start: "items-start",
131
+ center: "items-center",
132
+ end: "items-end",
133
+ stretch: "items-stretch"
134
+ },
135
+ inlineAlign: {
136
+ start: "items-start",
137
+ center: "items-center",
138
+ end: "items-end",
139
+ stretch: "items-stretch"
140
+ },
141
+ wrap: {
142
+ true: "flex-wrap",
143
+ false: "flex-nowrap"
144
+ }
145
+ },
146
+ defaultVariants: {
147
+ direction: "vertical",
148
+ gap: "md",
149
+ align: "start"
150
+ }
151
+ });
152
+ /**
153
+ * Stack Component
154
+ *
155
+ * A flexible stack component for creating vertical or horizontal layouts with customizable spacing and alignment.
156
+ * By default, creates a vertical stack with medium gap spacing.
157
+ *
158
+ * @param {Object} [props={}] - Component props.
159
+ * @param {string} [props.as='div'] - The HTML element to render. Defaults to `div`.
160
+ * @param {React.ReactNode} [props.children] - Child elements to render inside the stack.
161
+ * @param {boolean} [props.horizontal=false] - If true, renders a horizontal stack (flex-row). Defaults to vertical (flex-col).
162
+ * @param {('none'|'xs'|'sm'|'md'|'lg'|'0'|'px'|'0.5'|'1'|'2'|'3'|'4'|'5'|'6'|'8'|'10')} [props.gap='md'] - Spacing between children. Semantic options: 'none' (0), 'xs' (1), 'sm' (2), 'md' (4), 'lg' (8). Numeric options: '0', 'px', '0.5', '1', '2', '3', '4', '5', '6', '8', '10'. Defaults to 'md'.
163
+ * @param {string} [props.id] - Optional ID for the component.
164
+ * @param {string} [props.className] - Additional custom class names to apply to the component.
165
+ * @param {('start'|'center'|'end'|'space-between'|'space-evenly'|'space-around'|'spaceBetween')} [props.align='start'] - Main axis alignment. Controls horizontal alignment for horizontal stacks and vertical alignment for vertical stacks.
166
+ * @param {('start'|'center'|'end'|'stretch')} [props.blockAlign] - Cross-axis alignment for horizontal stacks (vertical alignment). Only applicable when horizontal=true.
167
+ * @param {('start'|'center'|'end'|'stretch')} [props.inlineAlign] - Cross-axis alignment for vertical stacks (horizontal alignment). Only applicable when horizontal=false.
168
+ * @param {boolean} [props.wrap=false] - Whether children should wrap to the next line if necessary. Defaults to false.
169
+ * @param {Object} [restProps] - Additional props passed to the root element.
170
+ *
171
+ * @returns {JSX.Element} The rendered Stack component.
172
+ *
173
+ * @example
174
+ * // Vertical stack (default)
175
+ * <Stack gap="sm" inlineAlign="center">
176
+ * <div>Item 1</div>
177
+ * <div>Item 2</div>
178
+ * </Stack>
179
+ *
180
+ * @example
181
+ * // Horizontal stack
182
+ * <Stack horizontal gap="md" blockAlign="center" wrap={true}>
183
+ * <div>Item 1</div>
184
+ * <div>Item 2</div>
185
+ * </Stack>
186
+ */ function Stack() {
187
+ var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
188
+ var _props_as = props.as, as = _props_as === void 0 ? "div" : _props_as, children = props.children, _props_horizontal = props.horizontal, horizontal = _props_horizontal === void 0 ? false : _props_horizontal, _props_gap = props.gap, gap = _props_gap === void 0 ? "md" : _props_gap, id = props.id, className = props.className, align = props.align, blockAlign = props.blockAlign, inlineAlign = props.inlineAlign, _props_wrap = props.wrap, wrap = _props_wrap === void 0 ? false : _props_wrap, restProps = _object_without_properties(props, [
189
+ "as",
190
+ "children",
191
+ "horizontal",
192
+ "gap",
193
+ "id",
194
+ "className",
195
+ "align",
196
+ "blockAlign",
197
+ "inlineAlign",
198
+ "wrap"
199
+ ]);
200
+ var direction = horizontal ? "horizontal" : "vertical";
201
+ // For horizontal stacks, use blockAlign for cross-axis
202
+ // For vertical stacks, use inlineAlign for cross-axis
203
+ var crossAxisAlign = horizontal ? blockAlign : inlineAlign;
204
+ var classes = styles(_object_spread_props(_object_spread({
205
+ direction: direction,
206
+ gap: gap,
207
+ align: align
208
+ }, horizontal && blockAlign ? {
209
+ blockAlign: blockAlign
210
+ } : {}, !horizontal && inlineAlign ? {
211
+ inlineAlign: inlineAlign
212
+ } : {}), {
213
+ wrap: wrap
214
+ }));
215
+ var Element = as;
216
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(Element, _object_spread_props(_object_spread({
217
+ id: id,
218
+ className: "".concat(classes).concat(className ? " ".concat(className) : "")
219
+ }, restProps), {
220
+ children: children
221
+ }));
222
+ }
223
+ var _default = Stack;
@@ -1082,7 +1082,7 @@ Table.Cell.displayName = "Table.Cell";
1082
1082
  borderTop: true,
1083
1083
  paddedHalf: paddedHalf,
1084
1084
  children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
1085
- className: "flex justify-start",
1085
+ className: "flex justify-start items-center gap-2",
1086
1086
  children: [
1087
1087
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Pagination.default, {
1088
1088
  hasPrevious: hasPreviousPage,
@@ -194,10 +194,11 @@ var containerStyles = (0, _tailwindvariants.tv)({
194
194
  * @param {boolean} [props.activeDisclosure=false] - Whether the "More" disclosure is currently active.
195
195
  * @param {boolean} [props.padded=true] - If true, applies padding to the Tabs container.
196
196
  * @param {boolean} [props.borderBottom=true] - If true, applies a bottom border to the Tabs container.
197
+ * @param {boolean} [props.simpleTabs=false] - If true, simplifies the styling for the selected tab.
197
198
  * @returns {JSX.Element} The Tabs component.
198
199
  */ function Tabs() {
199
200
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
200
- var tmp = props.tabs, _tabs = tmp === void 0 ? [] : tmp, _selectedIndex = props.selected, onSelect = props.onSelect, fullWidth = props.fullWidth, _props_disclosureText = props.disclosureText, disclosureText = _props_disclosureText === void 0 ? "More" : _props_disclosureText, _props_disclosure = props.disclosure, disclosure = _props_disclosure === void 0 ? false : _props_disclosure, _props_activeDisclosure = props.activeDisclosure, activeDisclosure = _props_activeDisclosure === void 0 ? false : _props_activeDisclosure, _props_padded = props.padded, padded = _props_padded === void 0 ? true : _props_padded, _props_borderBottom = props.borderBottom, borderBottom = _props_borderBottom === void 0 ? true : _props_borderBottom;
201
+ var tmp = props.tabs, _tabs = tmp === void 0 ? [] : tmp, _selectedIndex = props.selected, onSelect = props.onSelect, fullWidth = props.fullWidth, _props_disclosureText = props.disclosureText, disclosureText = _props_disclosureText === void 0 ? "More" : _props_disclosureText, _props_disclosure = props.disclosure, disclosure = _props_disclosure === void 0 ? false : _props_disclosure, _props_activeDisclosure = props.activeDisclosure, activeDisclosure = _props_activeDisclosure === void 0 ? false : _props_activeDisclosure, _props_padded = props.padded, padded = _props_padded === void 0 ? true : _props_padded, _props_borderBottom = props.borderBottom, borderBottom = _props_borderBottom === void 0 ? true : _props_borderBottom, _props_simpleTabs = props.simpleTabs, simpleTabs = _props_simpleTabs === void 0 ? false : _props_simpleTabs;
201
202
  var selectedIndex = parseInt(_selectedIndex);
202
203
  var containerRef = (0, _react.useRef)(null);
203
204
  var disclosureRef = (0, _react.useRef)(null);
@@ -306,6 +307,7 @@ var containerStyles = (0, _tailwindvariants.tv)({
306
307
  icon: tab.icon,
307
308
  fullWidth: fullWidth,
308
309
  hidden: tab.hidden,
310
+ simple: simpleTabs,
309
311
  children: tab.content
310
312
  }, "tab-".concat(tab.originalIndex));
311
313
  })
@@ -356,10 +358,6 @@ var tabStyles = (0, _tailwindvariants.tv)({
356
358
  true: "pl-3 pr-1",
357
359
  false: "px-3"
358
360
  },
359
- selected: {
360
- true: "text-tab-active-fg bg-tab-active-bg hover:bg-tab-active-bg-hover active:bg-tab-active-bg-active",
361
- false: "text-tab-inactive-fg bg-tab-inactive-bg hover:bg-tab-inactive-bg-hover active:bg-tab-inactive-bg-active"
362
- },
363
361
  disabled: {
364
362
  true: "cursor-not-allowed",
365
363
  false: "cursor-pointer"
@@ -370,12 +368,41 @@ var tabStyles = (0, _tailwindvariants.tv)({
370
368
  },
371
369
  hidden: {
372
370
  true: "invisible"
371
+ },
372
+ simple: {
373
+ true: "flex flex-col items-center justify-center rounded-none bg-transparent hover:bg-transparent active:bg-transparent"
374
+ },
375
+ selected: {
376
+ true: "",
377
+ false: ""
373
378
  }
374
- }
379
+ },
380
+ compoundVariants: [
381
+ {
382
+ selected: true,
383
+ simple: false,
384
+ class: "text-tab-active-fg bg-tab-active-bg hover:bg-tab-active-bg-hover active:bg-tab-active-bg-active"
385
+ },
386
+ {
387
+ selected: false,
388
+ simple: false,
389
+ class: "text-tab-inactive-fg bg-tab-inactive-bg hover:bg-tab-inactive-bg-hover active:bg-tab-inactive-bg-active"
390
+ },
391
+ {
392
+ selected: true,
393
+ simple: true,
394
+ class: "text-highest"
395
+ },
396
+ {
397
+ selected: false,
398
+ simple: true,
399
+ class: "text-lowest"
400
+ }
401
+ ]
375
402
  });
376
403
  function Tab() {
377
404
  var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
378
- var id = props.id, active = props.active, selected = props.selected, index = props.index, icon = props.icon, onSelect = props.onSelect, onClick = props.onClick, children = props.children, fullWidth = props.fullWidth, hidden = props.hidden, _props_disclosure = props.disclosure, disclosure = _props_disclosure === void 0 ? false : _props_disclosure, _props_alwaysShowDisclosureIcon = props.alwaysShowDisclosureIcon, alwaysShowDisclosureIcon = _props_alwaysShowDisclosureIcon === void 0 ? false : _props_alwaysShowDisclosureIcon, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled;
405
+ var id = props.id, active = props.active, selected = props.selected, index = props.index, icon = props.icon, onSelect = props.onSelect, onClick = props.onClick, children = props.children, fullWidth = props.fullWidth, hidden = props.hidden, simple = props.simple, _props_disclosure = props.disclosure, disclosure = _props_disclosure === void 0 ? false : _props_disclosure, _props_alwaysShowDisclosureIcon = props.alwaysShowDisclosureIcon, alwaysShowDisclosureIcon = _props_alwaysShowDisclosureIcon === void 0 ? false : _props_alwaysShowDisclosureIcon, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled;
379
406
  var polarisIcon = typeof icon === "string" ? _polarisicons[icon] : _polarisicons[icon === null || icon === void 0 ? void 0 : icon.displayName];
380
407
  var showDisclosure = disclosure && (selected || alwaysShowDisclosureIcon);
381
408
  var tabClasses = tabStyles({
@@ -383,7 +410,8 @@ function Tab() {
383
410
  disclosure: showDisclosure,
384
411
  disabled: disabled,
385
412
  fullWidth: fullWidth,
386
- hidden: hidden
413
+ hidden: hidden,
414
+ simple: simple
387
415
  });
388
416
  return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
389
417
  id: id ? "tab-".concat(id) : undefined,
@@ -396,11 +424,12 @@ function Tab() {
396
424
  className: "Litho-Tabs__Tab-Icon mr-1",
397
425
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Icon.default, {
398
426
  source: polarisIcon,
399
- color: selected ? "active" : "subdued"
427
+ color: selected && simple ? "default" : selected ? "primary" : "subdued",
428
+ size: simple ? "lg" : undefined
400
429
  })
401
430
  }),
402
431
  icon && !!polarisIcon === false && /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
403
- className: "Litho-Tabs__Tab-Icon mr-1",
432
+ className: "Litho-Tabs__Tab-Icon ".concat(simple ? "mr-0" : "mr-1"),
404
433
  children: icon
405
434
  }),
406
435
  /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
@@ -411,7 +440,8 @@ function Tab() {
411
440
  className: "Litho-Tabs__Tab-Disclosure",
412
441
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Icon.default, {
413
442
  source: active ? _polarisicons.CaretUpMinor : _polarisicons.CaretDownMinor,
414
- color: selected ? "active" : "subdued"
443
+ color: selected && simple ? "default" : selected ? "active" : "subdued",
444
+ size: simple ? "lg" : undefined
415
445
  })
416
446
  })
417
447
  ]
@@ -93,7 +93,13 @@ var styles = (0, _tailwindvariants.tv)({
93
93
  base: "Litho-VerticalStack flex flex-col",
94
94
  variants: {
95
95
  gap: {
96
- none: "",
96
+ none: "gap-0",
97
+ // Semantic values (recommended)
98
+ xs: "gap-1",
99
+ sm: "gap-2",
100
+ md: "gap-4",
101
+ lg: "gap-8",
102
+ // Numeric values (backwards compatibility)
97
103
  "0": "gap-0",
98
104
  "px": "gap-px",
99
105
  "0.5": "gap-0.5",
@@ -128,7 +134,7 @@ var styles = (0, _tailwindvariants.tv)({
128
134
  * @param {React.ReactNode} [props.children] - The child elements to render within the stack.
129
135
  * @param {string} [props.align] - Vertical alignment of the stack content. Options: "start", "end", "center", "spaceBetween".
130
136
  * @param {string} [props.inlineAlign] - Horizontal alignment of the stack content. Options: "start", "end", "center", "spaceBetween".
131
- * @param {string} [props.gap="none"] - Spacing between child elements. Options: "none", "0", "px", "0.5", "1", "2", "3", "4", "6", "8", "10".
137
+ * @param {('none'|'xs'|'sm'|'md'|'lg'|'0'|'px'|'0.5'|'1'|'2'|'3'|'4'|'5'|'6'|'8'|'10')} [props.gap="none"] - Spacing between child elements. Semantic options: "none", "xs" (1), "sm" (2), "md" (4), "lg" (8). Numeric options: "0", "px", "0.5", "1", "2", "3", "4", "5", "6", "8", "10".
132
138
  * @param {string} [props.id] - The id for the root element of the stack.
133
139
  * @param {string} [props.className] - Additional CSS classes to append to the generated styles.
134
140
  * @param {object} [props.restProps] - Any additional properties to spread onto the root element.
package/dist/cjs/index.js CHANGED
@@ -159,6 +159,9 @@ _export(exports, {
159
159
  get Spinner () {
160
160
  return _Spinner.default;
161
161
  },
162
+ get Stack () {
163
+ return _Stack.default;
164
+ },
162
165
  get Table () {
163
166
  return _Table.default;
164
167
  },
@@ -248,6 +251,7 @@ var _ResourceList = /*#__PURE__*/ _interop_require_default(require("./components
248
251
  var _Select = /*#__PURE__*/ _interop_require_default(require("./components/Select"));
249
252
  var _SkeletonText = /*#__PURE__*/ _interop_require_default(require("./components/SkeletonText"));
250
253
  var _Spinner = /*#__PURE__*/ _interop_require_default(require("./components/Spinner"));
254
+ var _Stack = /*#__PURE__*/ _interop_require_default(require("./components/Stack"));
251
255
  var _Table = /*#__PURE__*/ _interop_require_default(require("./components/Table"));
252
256
  var _Tabs = /*#__PURE__*/ _interop_require_default(require("./components/Tabs"));
253
257
  var _Tag = /*#__PURE__*/ _interop_require_default(require("./components/Tag"));
@@ -32,9 +32,9 @@ _export(exports, {
32
32
  }
33
33
  });
34
34
  var _jsxruntime = require("react/jsx-runtime");
35
- var _ActionList = /*#__PURE__*/ _interop_require_default(require("../components/ActionList.js"));
36
35
  var _polarisicons = require("@shopify/polaris-icons");
37
36
  var _Card = /*#__PURE__*/ _interop_require_default(require("../components/Card.js"));
37
+ var _ActionList = /*#__PURE__*/ _interop_require_default(require("../components/ActionList.js"));
38
38
  function _interop_require_default(obj) {
39
39
  return obj && obj.__esModule ? obj : {
40
40
  default: obj
@@ -38,8 +38,7 @@ var _Text = /*#__PURE__*/ _interop_require_default(require("../components/Text.j
38
38
  var _Card = /*#__PURE__*/ _interop_require_default(require("../components/Card.js"));
39
39
  var _Button = /*#__PURE__*/ _interop_require_default(require("../components/Button.js"));
40
40
  var _polarisicons = require("@shopify/polaris-icons");
41
- var _HorizontalStack = /*#__PURE__*/ _interop_require_default(require("../components/HorizontalStack.js"));
42
- var _VerticalStack = /*#__PURE__*/ _interop_require_default(require("../components/VerticalStack.js"));
41
+ var _Stack = /*#__PURE__*/ _interop_require_default(require("../components/Stack.js"));
43
42
  var _Tag = /*#__PURE__*/ _interop_require_default(require("../components/Tag.js"));
44
43
  var _Thumbnail = /*#__PURE__*/ _interop_require_default(require("../components/Thumbnail.js"));
45
44
  var _transformers = require("../utilities/transformers.js");
@@ -307,8 +306,8 @@ var Default = {
307
306
  width: "400px"
308
307
  },
309
308
  padded: true,
310
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_VerticalStack.default, {
311
- gap: "2",
309
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
310
+ gap: "sm",
312
311
  children: [
313
312
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Autocomplete.default, {
314
313
  options: filteredOptions,
@@ -320,7 +319,8 @@ var Default = {
320
319
  onChange: setInputValue
321
320
  })
322
321
  }),
323
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_HorizontalStack.default, {
322
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Stack.default, {
323
+ horizontal: true,
324
324
  children: selected.length > 0 && selected.map(function(item) {
325
325
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Tag.default, {
326
326
  children: item
@@ -392,8 +392,8 @@ var MultipleSelection = {
392
392
  width: "400px"
393
393
  },
394
394
  padded: true,
395
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_VerticalStack.default, {
396
- gap: "2",
395
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
396
+ gap: "sm",
397
397
  children: [
398
398
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Autocomplete.default, {
399
399
  options: filteredOptions,
@@ -406,8 +406,9 @@ var MultipleSelection = {
406
406
  onChange: setInputValue
407
407
  })
408
408
  }),
409
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_HorizontalStack.default, {
410
- gap: "2",
409
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Stack.default, {
410
+ horizontal: true,
411
+ gap: "sm",
411
412
  children: selected.length > 0 && selected.map(function(item) {
412
413
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Tag.default, {
413
414
  children: item
@@ -499,8 +500,8 @@ var GroupedOptions = {
499
500
  width: "400px"
500
501
  },
501
502
  padded: true,
502
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_VerticalStack.default, {
503
- gap: "2",
503
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
504
+ gap: "sm",
504
505
  children: [
505
506
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Autocomplete.default, {
506
507
  options: filteredOptions,
@@ -512,8 +513,9 @@ var GroupedOptions = {
512
513
  onChange: setInputValue
513
514
  })
514
515
  }),
515
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_HorizontalStack.default, {
516
- gap: "2",
516
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_Stack.default, {
517
+ horizontal: true,
518
+ gap: "sm",
517
519
  children: selected.length > 0 && selected.map(function(item) {
518
520
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Tag.default, {
519
521
  children: item
@@ -789,8 +791,8 @@ var CustomerSearch = {
789
791
  width: "500px"
790
792
  },
791
793
  padded: true,
792
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_VerticalStack.default, {
793
- gap: "2",
794
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
795
+ gap: "sm",
794
796
  children: [
795
797
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
796
798
  variant: "bodySm",
@@ -837,8 +839,9 @@ var CustomerSearch = {
837
839
  var customer = customers.find(function(c) {
838
840
  return c.value === customerId;
839
841
  });
840
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_HorizontalStack.default, {
841
- gap: "2",
842
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
843
+ horizontal: true,
844
+ gap: "sm",
842
845
  blockAlign: "center",
843
846
  children: [
844
847
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Thumbnail.default, {
@@ -39,8 +39,7 @@ var _Box = /*#__PURE__*/ _interop_require_default(require("../components/Box.js"
39
39
  var _Text = /*#__PURE__*/ _interop_require_default(require("../components/Text.js"));
40
40
  var _Button = /*#__PURE__*/ _interop_require_default(require("../components/Button.js"));
41
41
  var _Card = /*#__PURE__*/ _interop_require_default(require("../components/Card.js"));
42
- var _HorizontalStack = /*#__PURE__*/ _interop_require_default(require("../components/HorizontalStack.js"));
43
- var _VerticalStack = /*#__PURE__*/ _interop_require_default(require("../components/VerticalStack.js"));
42
+ var _Stack = /*#__PURE__*/ _interop_require_default(require("../components/Stack.js"));
44
43
  var _transformers = require("../utilities/transformers.js");
45
44
  function _interop_require_default(obj) {
46
45
  return obj && obj.__esModule ? obj : {
@@ -350,8 +349,8 @@ var Default = {
350
349
  };
351
350
  var WithPadding = {
352
351
  render: function() {
353
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_VerticalStack.default, {
354
- gap: "2",
352
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
353
+ gap: "sm",
355
354
  children: [
356
355
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
357
356
  padding: "2",
@@ -414,8 +413,8 @@ var AsymmetricPadding = {
414
413
  };
415
414
  var WithBorders = {
416
415
  render: function() {
417
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_VerticalStack.default, {
418
- gap: "2",
416
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
417
+ gap: "sm",
419
418
  children: [
420
419
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
421
420
  padding: "4",
@@ -457,8 +456,9 @@ var WithBorders = {
457
456
  };
458
457
  var BorderRadius = {
459
458
  render: function() {
460
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_HorizontalStack.default, {
461
- gap: "2",
459
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
460
+ horizontal: true,
461
+ gap: "sm",
462
462
  children: [
463
463
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
464
464
  padding: "4",
@@ -527,8 +527,9 @@ var LayoutExample = {
527
527
  })
528
528
  }),
529
529
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
530
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_HorizontalStack.default, {
531
- gap: "2",
530
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
531
+ horizontal: true,
532
+ gap: "sm",
532
533
  children: [
533
534
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
534
535
  primary: true,
@@ -556,8 +557,9 @@ var LayoutExample = {
556
557
  };
557
558
  var OverflowBehavior = {
558
559
  render: function() {
559
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_HorizontalStack.default, {
560
- gap: "2",
560
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
561
+ horizontal: true,
562
+ gap: "sm",
561
563
  children: [
562
564
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
563
565
  padding: "4",
@@ -46,7 +46,7 @@ var _ButtonGroup = /*#__PURE__*/ _interop_require_default(require("../components
46
46
  var _Button = /*#__PURE__*/ _interop_require_default(require("../components/Button.js"));
47
47
  var _polarisicons = require("@shopify/polaris-icons");
48
48
  var _transformers = require("../utilities/transformers.js");
49
- var _VerticalStack = /*#__PURE__*/ _interop_require_default(require("../components/VerticalStack.js"));
49
+ var _Stack = /*#__PURE__*/ _interop_require_default(require("../components/Stack.js"));
50
50
  var _TextField = /*#__PURE__*/ _interop_require_default(require("../components/TextField.js"));
51
51
  var _Card = /*#__PURE__*/ _interop_require_default(require("../components/Card.js"));
52
52
  var _Box = /*#__PURE__*/ _interop_require_default(require("../components/Box.js"));
@@ -268,8 +268,8 @@ var MixedVariants = {
268
268
  };
269
269
  var FormActions = {
270
270
  render: function() {
271
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_VerticalStack.default, {
272
- gap: "2",
271
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
272
+ gap: "sm",
273
273
  children: [
274
274
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Box.default, {
275
275
  paddingBlockEnd: "4",
@@ -280,8 +280,8 @@ var FormActions = {
280
280
  }),
281
281
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Card.default, {
282
282
  padded: true,
283
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_VerticalStack.default, {
284
- gap: "2",
283
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
284
+ gap: "sm",
285
285
  children: [
286
286
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_TextField.default, {
287
287
  label: "Sample Form Field",
@@ -35,8 +35,7 @@ var _jsxruntime = require("react/jsx-runtime");
35
35
  var _Card = /*#__PURE__*/ _interop_require_default(require("../components/Card.js"));
36
36
  var _Text = /*#__PURE__*/ _interop_require_default(require("../components/Text.js"));
37
37
  var _Button = /*#__PURE__*/ _interop_require_default(require("../components/Button.js"));
38
- var _VerticalStack = /*#__PURE__*/ _interop_require_default(require("../components/VerticalStack.js"));
39
- var _HorizontalStack = /*#__PURE__*/ _interop_require_default(require("../components/HorizontalStack.js"));
38
+ var _Stack = /*#__PURE__*/ _interop_require_default(require("../components/Stack.js"));
40
39
  function _interop_require_default(obj) {
41
40
  return obj && obj.__esModule ? obj : {
42
41
  default: obj
@@ -241,11 +240,11 @@ var Complex = {
241
240
  highlighted: true,
242
241
  tooltip: "This is a tooltip",
243
242
  tooltipPreferredPosition: "below",
244
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_VerticalStack.default, {
245
- gap: "4",
243
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
244
+ gap: "md",
246
245
  children: [
247
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_VerticalStack.default, {
248
- gap: "2",
246
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
247
+ gap: "sm",
249
248
  children: [
250
249
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Text.default, {
251
250
  variant: "bodyMd",
@@ -258,8 +257,9 @@ var Complex = {
258
257
  })
259
258
  ]
260
259
  }),
261
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_HorizontalStack.default, {
262
- gap: "1",
260
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
261
+ horizontal: true,
262
+ gap: "xs",
263
263
  children: [
264
264
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Button.default, {
265
265
  size: "small",
@@ -43,7 +43,7 @@ _export(exports, {
43
43
  var _jsxruntime = require("react/jsx-runtime");
44
44
  var _Card = /*#__PURE__*/ _interop_require_default(require("../components/Card.js"));
45
45
  var _Checkbox = /*#__PURE__*/ _interop_require_default(require("../components/Checkbox.js"));
46
- var _VerticalStack = /*#__PURE__*/ _interop_require_default(require("../components/VerticalStack.js"));
46
+ var _Stack = /*#__PURE__*/ _interop_require_default(require("../components/Stack.js"));
47
47
  var _transformers = require("../utilities/transformers.js");
48
48
  function _interop_require_default(obj) {
49
49
  return obj && obj.__esModule ? obj : {
@@ -212,8 +212,8 @@ var LabelHidden = {
212
212
  };
213
213
  var MultipleCheckboxes = {
214
214
  render: function() {
215
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_VerticalStack.default, {
216
- gap: "1",
215
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Stack.default, {
216
+ gap: "xs",
217
217
  children: [
218
218
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_Checkbox.default, {
219
219
  label: "Option 1",