@wallarm-org/design-system 1.6.2 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/components/EmptyState/EmptyState.js +14 -10
  2. package/dist/components/EmptyState/EmptyStateContext.d.ts +3 -0
  3. package/dist/components/EmptyState/EmptyStateContext.js +5 -0
  4. package/dist/components/EmptyState/EmptyStateIllustration.js +2 -1
  5. package/dist/components/EmptyState/EmptyStateMessage.js +6 -1
  6. package/dist/components/EmptyState/EmptyStateTitle.js +6 -1
  7. package/dist/components/EmptyState/classes.d.ts +27 -0
  8. package/dist/components/EmptyState/classes.js +27 -4
  9. package/dist/components/FilterInput/FilterInputField/ChipsWithGaps.js +2 -0
  10. package/dist/components/FilterInput/FilterInputField/FilterInputChip/FilterInputChip.d.ts +5 -0
  11. package/dist/components/FilterInput/FilterInputField/FilterInputChip/FilterInputChip.js +12 -1
  12. package/dist/components/FilterInput/FilterInputField/FilterInputChip/Segment.d.ts +6 -0
  13. package/dist/components/FilterInput/FilterInputField/FilterInputChip/Segment.js +10 -3
  14. package/dist/components/FilterInput/FilterInputField/FilterInputChip/applyEditCaret.d.ts +1 -0
  15. package/dist/components/FilterInput/FilterInputField/FilterInputChip/applyEditCaret.js +10 -0
  16. package/dist/components/FilterInput/FilterInputField/FilterInputChip/index.d.ts +1 -0
  17. package/dist/components/FilterInput/FilterInputField/FilterInputChip/index.js +1 -0
  18. package/dist/components/FilterInput/hooks/useFilterInputAutocomplete/useFilterInputAutocomplete.js +4 -1
  19. package/dist/components/FilterInput/hooks/useFilterInputAutocomplete/useFocusManagement.js +16 -5
  20. package/dist/components/FilterInput/hooks/useFilterInputExpression/buildChips.js +6 -0
  21. package/dist/components/FilterInput/types.d.ts +16 -0
  22. package/dist/icons/Shapes.d.ts +3 -0
  23. package/dist/icons/Shapes.js +12 -0
  24. package/dist/icons/index.d.ts +1 -0
  25. package/dist/icons/index.js +1 -0
  26. package/dist/metadata/components.json +1141 -633
  27. package/dist/theme/Pixel.stories.tsx +9 -1
  28. package/dist/theme/index.css +1 -0
  29. package/dist/theme/semantic.css +28 -0
  30. package/dist/theme/utilities/empty-state-medallion.css +18 -0
  31. package/package.json +1 -1
@@ -4,7 +4,7 @@ import { Text } from '../components/Text';
4
4
 
5
5
  const DESCRIPTION = [
6
6
  'Geist Pixel is the decorative typeface. Use it for empty states, and for moments that want personality rather than information.',
7
- 'There is no `Pixel` component. Pixel type is composed from the `font-pixel` utility plus the shared `text-*` size utilities, so the steps below are conventions rather than a component API. The only place it ships today is `EmptyStateTitle`, at 16/24.',
7
+ 'There is no `Pixel` component. Pixel type is composed from the `font-pixel` utility plus the shared `text-*` size utilities, so the steps below are conventions rather than a component API. The only place it ships today is `EmptyStateTitle` at the `collection-empty` scale, at 16/24 — the compact `no-results` title is sans, not pixel.',
8
8
  'One cut only: Square at regular weight. There is no light or bold, so `font-bold` on pixel type renders as a browser-synthesized fake — emphasis has to come from size or colour, never from weight.',
9
9
  'Not for UI copy, labels, or anything read at length; that is the text ramp. Keep it to short strings, where the blocky letterforms stay legible.',
10
10
  ].join('\n\n');
@@ -39,6 +39,10 @@ const STEPS: PixelStep[] = [
39
39
  { token: 'pixel-lg', utilities: 'font-pixel text-base', metrics: '16 / 24' },
40
40
  ];
41
41
 
42
+ /**
43
+ * The four sanctioned steps, with the Figma token beside each. Only one ships today —
44
+ * `EmptyStateTitle` at 16 on 24 — so treat the rest as available rather than established.
45
+ */
42
46
  export const Scale: StoryFn<typeof meta> = () => (
43
47
  <VStack gap={32} align='start'>
44
48
  {STEPS.map(({ token, utilities, metrics }) => (
@@ -57,6 +61,10 @@ export const Scale: StoryFn<typeof meta> = () => (
57
61
  </VStack>
58
62
  );
59
63
 
64
+ /**
65
+ * One cut only, Square at regular weight. `font-bold` on pixel type renders as a
66
+ * browser-synthesised fake, so emphasis has to come from size or colour and never from weight.
67
+ */
60
68
  export const Decorative: StoryFn<typeof meta> = () => (
61
69
  <VStack gap={40} align='start'>
62
70
  <VStack gap={12} align='start'>
@@ -17,6 +17,7 @@
17
17
  @import './icon.css';
18
18
  @import './utilities/hover-overlay.css';
19
19
  @import './utilities/code-snippet-bg.css';
20
+ @import './utilities/empty-state-medallion.css';
20
21
  @import './components/drawer.css';
21
22
  @import './components/dialog.css';
22
23
  @import './components/tooltip.css';
@@ -216,6 +216,24 @@
216
216
  --color-component-toast-ic-info: var(--color-blue-400);
217
217
  --color-component-app-shell-bg: var(--color-slate-100);
218
218
 
219
+ /* EmptyState medallion — the small raised tile behind the empty-state icon.
220
+ * Reads as a lit surface: a top-down gradient, a hairline border, a soft
221
+ * drop shadow and an inner top highlight. Kept as tokens (not utilities)
222
+ * because every layer flips between light and dark. */
223
+ --color-component-empty-state-medallion-bg-from: var(--color-white);
224
+ --color-component-empty-state-medallion-bg-to: --alpha(var(--color-slate-100) / 80%);
225
+ --color-component-empty-state-medallion-border: --alpha(var(--color-slate-300) / 70%);
226
+ /* The hairline rides in the shadow list as an inset ring rather than a real
227
+ * border: Figma composites the top highlight *over* the stroke, and a CSS
228
+ * inset shadow is clipped to the padding box, so it can never reach a real
229
+ * border. Ordering matters — earlier shadows paint on top, so the highlight
230
+ * and the inner shade both land over the ring, as in Figma. It also keeps
231
+ * the glyph at 8px from the edge instead of 9px. */
232
+ --shadow-empty-state-medallion:
233
+ inset 0 1px 0 0 rgba(255, 255, 255, 0.45), inset 0 -1px 1px 0 rgba(15, 23, 43, 0.04),
234
+ inset 0 0 0 1px var(--color-component-empty-state-medallion-border),
235
+ 0 2px 2.5px 0 rgba(15, 23, 43, 0.03), 0 1px 1px 0 rgba(15, 23, 43, 0.05);
236
+
219
237
  /* ========================================
220
238
  * SYNTAX COLORS
221
239
  * ⚠️ CODE-MANAGED — DO NOT SYNC FROM FIGMA
@@ -612,6 +630,16 @@
612
630
  --color-component-toast-ic-info: var(--color-blue-600);
613
631
  --color-component-app-shell-bg: var(--color-slate-975);
614
632
 
633
+ /* EmptyState medallion (dark) — same recipe inverted: the gradient and the
634
+ * top highlight become low-alpha white, the shadows deepen to near-black. */
635
+ --color-component-empty-state-medallion-bg-from: --alpha(var(--color-white) / 7%);
636
+ --color-component-empty-state-medallion-bg-to: --alpha(var(--color-white) / 2%);
637
+ --color-component-empty-state-medallion-border: --alpha(var(--color-white) / 13%);
638
+ --shadow-empty-state-medallion:
639
+ inset 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 -1px 2px 0 rgba(0, 0, 0, 0.16),
640
+ inset 0 0 0 1px var(--color-component-empty-state-medallion-border),
641
+ 0 2px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 2px 0 rgba(0, 0, 0, 0.24);
642
+
615
643
  /* ========================================
616
644
  * SYNTAX COLORS
617
645
  * ⚠️ CODE-MANAGED — DO NOT SYNC FROM FIGMA
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The raised tile behind an EmptyState icon.
3
+ *
4
+ * Composed here rather than in the component so the three layers Figma draws
5
+ * as stacked overlays (gradient fill, outer drop shadow, inner top highlight)
6
+ * collapse into one element: the gradient is a background-image, and the drop
7
+ * shadow, the inset highlight and the hairline ring all ride in a single
8
+ * box-shadow list. All of it resolves through tokens that flip in
9
+ * `[data-theme='dark']`.
10
+ */
11
+ @utility empty-state-medallion {
12
+ background-image: linear-gradient(
13
+ to bottom,
14
+ var(--color-component-empty-state-medallion-bg-from),
15
+ var(--color-component-empty-state-medallion-bg-to)
16
+ );
17
+ box-shadow: var(--shadow-empty-state-medallion);
18
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wallarm-org/design-system",
3
- "version": "1.6.2",
3
+ "version": "1.8.0",
4
4
  "description": "Core design system library with React components and Storybook documentation",
5
5
  "publishConfig": {
6
6
  "access": "public",