@mindlogic-ai/logician-ui 4.0.0-alpha.21 → 4.0.0-alpha.23

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 (88) hide show
  1. package/dist/components/ErrorFallback/ErrorFallback.d.ts.map +1 -1
  2. package/dist/components/ErrorFallback/ErrorFallback.js +13 -2
  3. package/dist/components/ErrorFallback/ErrorFallback.js.map +1 -1
  4. package/dist/components/ErrorFallback/ErrorFallback.mjs +13 -2
  5. package/dist/components/ErrorFallback/ErrorFallback.mjs.map +1 -1
  6. package/dist/components/FileInput/FileInput.d.ts.map +1 -1
  7. package/dist/components/FileInput/FileInput.js +7 -1
  8. package/dist/components/FileInput/FileInput.js.map +1 -1
  9. package/dist/components/FileInput/FileInput.mjs +7 -1
  10. package/dist/components/FileInput/FileInput.mjs.map +1 -1
  11. package/dist/components/Markdown/Markdown.d.ts.map +1 -1
  12. package/dist/components/Markdown/Markdown.js +6 -1
  13. package/dist/components/Markdown/Markdown.js.map +1 -1
  14. package/dist/components/Markdown/Markdown.mjs +6 -1
  15. package/dist/components/Markdown/Markdown.mjs.map +1 -1
  16. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  17. package/dist/components/Pagination/Pagination.js +6 -1
  18. package/dist/components/Pagination/Pagination.js.map +1 -1
  19. package/dist/components/Pagination/Pagination.mjs +6 -1
  20. package/dist/components/Pagination/Pagination.mjs.map +1 -1
  21. package/dist/components/Radio/RadioControl.d.ts.map +1 -1
  22. package/dist/components/Radio/RadioControl.js +14 -1
  23. package/dist/components/Radio/RadioControl.js.map +1 -1
  24. package/dist/components/Radio/RadioControl.mjs +15 -2
  25. package/dist/components/Radio/RadioControl.mjs.map +1 -1
  26. package/dist/components/Select/ComboboxField.d.ts +1 -1
  27. package/dist/components/Select/ComboboxField.d.ts.map +1 -1
  28. package/dist/components/Select/ComboboxField.js +2 -2
  29. package/dist/components/Select/ComboboxField.js.map +1 -1
  30. package/dist/components/Select/ComboboxField.mjs +2 -2
  31. package/dist/components/Select/ComboboxField.mjs.map +1 -1
  32. package/dist/components/Select/Select.types.d.ts +16 -0
  33. package/dist/components/Select/Select.types.d.ts.map +1 -1
  34. package/dist/components/Select/SelectField.d.ts +1 -1
  35. package/dist/components/Select/SelectField.d.ts.map +1 -1
  36. package/dist/components/Select/SelectField.js +2 -2
  37. package/dist/components/Select/SelectField.js.map +1 -1
  38. package/dist/components/Select/SelectField.mjs +2 -2
  39. package/dist/components/Select/SelectField.mjs.map +1 -1
  40. package/dist/components/Slider/Slider.d.ts.map +1 -1
  41. package/dist/components/Slider/Slider.js +2 -2
  42. package/dist/components/Slider/Slider.js.map +1 -1
  43. package/dist/components/Slider/Slider.mjs +3 -3
  44. package/dist/components/Slider/Slider.mjs.map +1 -1
  45. package/dist/components/Slider/Slider.types.d.ts +15 -0
  46. package/dist/components/Slider/Slider.types.d.ts.map +1 -1
  47. package/dist/components/Typography/Link.d.ts +25 -0
  48. package/dist/components/Typography/Link.d.ts.map +1 -1
  49. package/dist/components/Typography/Link.js +44 -7
  50. package/dist/components/Typography/Link.js.map +1 -1
  51. package/dist/components/Typography/Link.mjs +44 -8
  52. package/dist/components/Typography/Link.mjs.map +1 -1
  53. package/dist/components/Typography/Subtitle.d.ts +17 -0
  54. package/dist/components/Typography/Subtitle.d.ts.map +1 -1
  55. package/dist/components/Typography/Subtitle.js +18 -1
  56. package/dist/components/Typography/Subtitle.js.map +1 -1
  57. package/dist/components/Typography/Subtitle.mjs +18 -1
  58. package/dist/components/Typography/Subtitle.mjs.map +1 -1
  59. package/dist/components/Typography/index.d.ts +1 -1
  60. package/dist/components/Typography/index.d.ts.map +1 -1
  61. package/dist/components/Workflow/canvas/NodePalette/NodePalette.d.ts.map +1 -1
  62. package/dist/components/Workflow/canvas/NodePalette/NodePalette.js +19 -2
  63. package/dist/components/Workflow/canvas/NodePalette/NodePalette.js.map +1 -1
  64. package/dist/components/Workflow/canvas/NodePalette/NodePalette.mjs +19 -2
  65. package/dist/components/Workflow/canvas/NodePalette/NodePalette.mjs.map +1 -1
  66. package/dist/theme/colors.d.ts +145 -37
  67. package/dist/theme/colors.d.ts.map +1 -1
  68. package/dist/theme/colors.js +98 -68
  69. package/dist/theme/colors.js.map +1 -1
  70. package/dist/theme/colors.mjs +98 -68
  71. package/dist/theme/colors.mjs.map +1 -1
  72. package/package.json +2 -1
  73. package/src/components/ErrorFallback/ErrorFallback.tsx +30 -3
  74. package/src/components/FileInput/FileInput.tsx +11 -2
  75. package/src/components/Markdown/Markdown.tsx +6 -1
  76. package/src/components/Pagination/Pagination.tsx +5 -0
  77. package/src/components/Radio/RadioControl.tsx +20 -6
  78. package/src/components/Select/ComboboxField.tsx +11 -1
  79. package/src/components/Select/Select.types.ts +16 -0
  80. package/src/components/Select/SelectField.tsx +14 -1
  81. package/src/components/Slider/Slider.tsx +16 -1
  82. package/src/components/Slider/Slider.types.ts +15 -0
  83. package/src/components/Typography/Link.tsx +44 -7
  84. package/src/components/Typography/Subtitle.tsx +17 -1
  85. package/src/components/Typography/index.ts +1 -1
  86. package/src/components/Workflow/canvas/NodePalette/NodePalette.tsx +12 -2
  87. package/src/components/a11y.kwcag.test.tsx +412 -0
  88. package/src/theme/colors.ts +99 -69
@@ -60,35 +60,11 @@
60
60
  * <Badge bgColor="success.lightest" color="success.dark" />
61
61
  * ```
62
62
  */
63
- /**
64
- * Halved-saturation counterpart of each primitive `gray.N` — same hue and
65
- * lightness, HSL saturation cut by ~50% (e.g. `gray.1300` #1E2433 @ 26% →
66
- * #23262E @ 13%). The blue-tinted `gray` ramp reads as the right neutral in
67
- * light mode but turns muddy/over-chromatic as a dark surface, so every
68
- * dark-mode neutral below (`slate.*`, and the `_dark` of `bg`/`fg`/`border`)
69
- * resolves to this desaturated mirror instead of the raw `gray` step. Light
70
- * mode is untouched — it keeps referencing `{colors.gray.*}` verbatim.
71
- *
72
- * Single source of truth: change a dark neutral here, not at each token.
73
- */
74
- const desaturatedGray = {
75
- 0: '#FEFEFF',
76
- 50: '#F8F9FB',
77
- 100: '#F2F4F7',
78
- 200: '#E5E8EC',
79
- 300: '#D2D5DB',
80
- 400: '#B6BAC3',
81
- 500: '#A2A6B1',
82
- 600: '#8E939F',
83
- 800: '#6A6F7C',
84
- 900: '#595E6B',
85
- 1000: '#4A4E5A',
86
- 1100: '#3C404B',
87
- 1200: '#30343C',
88
- 1300: '#23262E',
89
- 1400: '#181A20',
90
- 1500: '#0E1014',
91
- };
63
+ // The dark-mode neutral family now lives in `colors.grayDark` (see below) so
64
+ // consumers can retint dark surfaces by overriding a primitive scale — exactly
65
+ // like `blue.*` for the brand ramp — instead of these values being unreachable
66
+ // hex literals. Every dark-mode neutral in the semantic tokens (`slate.*`, and
67
+ // the `_dark` of `bg`/`fg`/`border`) references `{colors.grayDark.N}`.
92
68
  const semanticTokens = {
93
69
  colors: {
94
70
  /**
@@ -296,48 +272,56 @@ const semanticTokens = {
296
272
  * dark canvas/surface — the straight mirrors measured ~3.0–3.9 there.
297
273
  */
298
274
  slate: {
299
- 0: { value: { base: '{colors.gray.0}', _dark: desaturatedGray[1500] } },
300
- 50: { value: { base: '{colors.gray.50}', _dark: desaturatedGray[1400] } },
275
+ 0: {
276
+ value: { base: '{colors.gray.0}', _dark: '{colors.grayDark.1500}' },
277
+ },
278
+ 50: {
279
+ value: { base: '{colors.gray.50}', _dark: '{colors.grayDark.1400}' },
280
+ },
301
281
  100: {
302
- value: { base: '{colors.gray.100}', _dark: desaturatedGray[1300] },
282
+ value: { base: '{colors.gray.100}', _dark: '{colors.grayDark.1300}' },
303
283
  },
304
284
  200: {
305
- value: { base: '{colors.gray.200}', _dark: desaturatedGray[1200] },
285
+ value: { base: '{colors.gray.200}', _dark: '{colors.grayDark.1200}' },
306
286
  },
307
287
  300: {
308
- value: { base: '{colors.gray.300}', _dark: desaturatedGray[1100] },
288
+ value: { base: '{colors.gray.300}', _dark: '{colors.grayDark.1100}' },
309
289
  },
310
290
  400: {
311
- value: { base: '{colors.gray.400}', _dark: desaturatedGray[1000] },
291
+ value: { base: '{colors.gray.400}', _dark: '{colors.grayDark.1000}' },
312
292
  },
313
293
  500: {
314
- value: { base: '{colors.gray.500}', _dark: desaturatedGray[900] },
294
+ value: { base: '{colors.gray.500}', _dark: '{colors.grayDark.900}' },
295
+ },
296
+ 600: {
297
+ value: { base: '{colors.gray.600}', _dark: '{colors.grayDark.fg600}' },
298
+ },
299
+ 700: {
300
+ value: { base: '{colors.gray.700}', _dark: '{colors.grayDark.fg700}' },
315
301
  },
316
- 600: { value: { base: '{colors.gray.600}', _dark: '#898E99' } },
317
- 700: { value: { base: '{colors.gray.700}', _dark: '#8D919D' } },
318
302
  800: {
319
- value: { base: '{colors.gray.800}', _dark: desaturatedGray[600] },
303
+ value: { base: '{colors.gray.800}', _dark: '{colors.grayDark.600}' },
320
304
  },
321
305
  900: {
322
- value: { base: '{colors.gray.900}', _dark: desaturatedGray[500] },
306
+ value: { base: '{colors.gray.900}', _dark: '{colors.grayDark.500}' },
323
307
  },
324
308
  1000: {
325
- value: { base: '{colors.gray.1000}', _dark: desaturatedGray[400] },
309
+ value: { base: '{colors.gray.1000}', _dark: '{colors.grayDark.400}' },
326
310
  },
327
311
  1100: {
328
- value: { base: '{colors.gray.1100}', _dark: desaturatedGray[300] },
312
+ value: { base: '{colors.gray.1100}', _dark: '{colors.grayDark.300}' },
329
313
  },
330
314
  1200: {
331
- value: { base: '{colors.gray.1200}', _dark: desaturatedGray[200] },
315
+ value: { base: '{colors.gray.1200}', _dark: '{colors.grayDark.200}' },
332
316
  },
333
317
  1300: {
334
- value: { base: '{colors.gray.1300}', _dark: desaturatedGray[100] },
318
+ value: { base: '{colors.gray.1300}', _dark: '{colors.grayDark.100}' },
335
319
  },
336
320
  1400: {
337
- value: { base: '{colors.gray.1400}', _dark: desaturatedGray[50] },
321
+ value: { base: '{colors.gray.1400}', _dark: '{colors.grayDark.50}' },
338
322
  },
339
323
  1500: {
340
- value: { base: '{colors.gray.1500}', _dark: desaturatedGray[0] },
324
+ value: { base: '{colors.gray.1500}', _dark: '{colors.grayDark.0}' },
341
325
  },
342
326
  },
343
327
  /**
@@ -358,13 +342,13 @@ const semanticTokens = {
358
342
  // value, so light is untouched); `_dark` rejoins our neutral floor instead
359
343
  // of Chakra's off-palette black.
360
344
  DEFAULT: {
361
- value: { _light: '{colors.white}', _dark: desaturatedGray[1500] },
345
+ value: { _light: '{colors.white}', _dark: '{colors.grayDark.1500}' },
362
346
  },
363
347
  canvas: {
364
- value: { base: '{colors.gray.0}', _dark: desaturatedGray[1500] },
348
+ value: { base: '{colors.gray.0}', _dark: '{colors.grayDark.1500}' },
365
349
  },
366
350
  surface: {
367
- value: { base: '{colors.white}', _dark: desaturatedGray[1400] },
351
+ value: { base: '{colors.white}', _dark: '{colors.grayDark.1400}' },
368
352
  },
369
353
  // Strongly-raised neutral surface — one level above `surface` (e.g. the
370
354
  // selected thumb of a SegmentedControl). In dark this is the *lightest*
@@ -376,7 +360,7 @@ const semanticTokens = {
376
360
  // cannot be overridden via semanticTokens in this setup (it keeps
377
361
  // resolving to Chakra's own gray.200), whereas a fresh name is honoured.
378
362
  raised: {
379
- value: { base: '{colors.white}', _dark: desaturatedGray[1100] },
363
+ value: { base: '{colors.white}', _dark: '{colors.grayDark.1100}' },
380
364
  },
381
365
  // `_light` (not `base`): Chakra's defaults for `bg.subtle`/`bg.muted` are
382
366
  // `{ _light: gray.50 }` / `{ _light: gray.100 }`, which outrank `base` in
@@ -385,13 +369,13 @@ const semanticTokens = {
385
369
  // either value ever diverges (as `border.subtle`/`fg.muted`/`fg.subtle`
386
370
  // already did). No visible change.
387
371
  subtle: {
388
- value: { _light: '{colors.gray.50}', _dark: desaturatedGray[1300] },
372
+ value: { _light: '{colors.gray.50}', _dark: '{colors.grayDark.1300}' },
389
373
  },
390
374
  muted: {
391
- value: { _light: '{colors.gray.100}', _dark: desaturatedGray[1200] },
375
+ value: { _light: '{colors.gray.100}', _dark: '{colors.grayDark.1200}' },
392
376
  },
393
377
  inverse: {
394
- value: { base: '{colors.gray.1300}', _dark: desaturatedGray[50] },
378
+ value: { base: '{colors.gray.1300}', _dark: '{colors.grayDark.50}' },
395
379
  },
396
380
  // Sunken page wash for list/overview surfaces: a gray floor in light so
397
381
  // `bg.surface` cards read as raised above it. In dark the `bg.*` ramp is
@@ -399,7 +383,7 @@ const semanticTokens = {
399
383
  // that elevation — so the dark value drops to the canvas floor instead.
400
384
  // Component-level fills (hover, chips, inner blocks) keep using `bg.subtle`.
401
385
  sunken: {
402
- value: { base: '{colors.gray.50}', _dark: desaturatedGray[1500] },
386
+ value: { base: '{colors.gray.50}', _dark: '{colors.grayDark.1500}' },
403
387
  },
404
388
  // Recessed control-track surface for "meter"-style components whose
405
389
  // unfilled track carries meaning (Switch off-state, Slider rail,
@@ -407,11 +391,11 @@ const semanticTokens = {
407
391
  // `bg.muted` (gray.50 / gray.100), which collapse into the `bg.sunken`
408
392
  // page wash in light mode, this sits at gray.300 so the track reads as a
409
393
  // filled surface on any background. Dark keeps the `bg.muted` value
410
- // (desaturatedGray[1200]) — already lighter than the dark canvas/surface,
394
+ // (grayDark.1200) — already lighter than the dark canvas/surface,
411
395
  // so it reads there without change. Use this only for control tracks, not
412
396
  // as a general fill (that stays `bg.subtle` / `bg.muted`).
413
397
  track: {
414
- value: { base: '{colors.gray.300}', _dark: desaturatedGray[1200] },
398
+ value: { base: '{colors.gray.300}', _dark: '{colors.grayDark.1200}' },
415
399
  },
416
400
  // Override Chakra's default `bg.panel` (whose `_dark` resolves to Chakra's
417
401
  // own gray.950 = #111111, off our slate palette). Light value is white —
@@ -420,7 +404,7 @@ const semanticTokens = {
420
404
  // (not `base`) for the same reason as `bg.subtle`/`bg.muted`: Chakra's
421
405
  // default `bg.panel` is `{ _light: white }`, which would outrank `base`.
422
406
  panel: {
423
- value: { _light: '{colors.white}', _dark: desaturatedGray[1400] },
407
+ value: { _light: '{colors.white}', _dark: '{colors.grayDark.1400}' },
424
408
  },
425
409
  /**
426
410
  * Row/selection state tints. Use these for selected rows,
@@ -457,14 +441,14 @@ const semanticTokens = {
457
441
  // `_light` repeats Chakra's value (black); `_dark` rejoins our desaturated
458
442
  // neutral so legacy html-level text tracks `fg.default`.
459
443
  DEFAULT: {
460
- value: { _light: '{colors.black}', _dark: desaturatedGray[50] },
444
+ value: { _light: '{colors.black}', _dark: '{colors.grayDark.50}' },
461
445
  },
462
446
  // Strongest text — headings, titles, key figures, emphasis. This is the
463
447
  // near-black step that `fg.default` used to be; `default` is now re-pegged
464
448
  // to a lighter body weight (see below), so reach for `emphasized` when you
465
449
  // specifically want maximum contrast.
466
450
  emphasized: {
467
- value: { base: '{colors.gray.1300}', _dark: desaturatedGray[200] },
451
+ value: { base: '{colors.gray.1300}', _dark: '{colors.grayDark.200}' },
468
452
  },
469
453
  default: {
470
454
  // Primary *body* text. Re-pegged from gray.1300 → gray.1000: near-black
@@ -472,7 +456,7 @@ const semanticTokens = {
472
456
  // real product usage clustered well below it. gray.1000 (~9:1) is a
473
457
  // comfortable AAA body weight; the old near-black step lives on as
474
458
  // `fg.emphasized`. _dark drops one step from emphasized for hierarchy.
475
- value: { base: '{colors.gray.1000}', _dark: desaturatedGray[300] },
459
+ value: { base: '{colors.gray.1000}', _dark: '{colors.grayDark.300}' },
476
460
  },
477
461
  muted: {
478
462
  // Secondary text. `_light` (not `base`): Chakra's default `fg.muted` is
@@ -480,19 +464,22 @@ const semanticTokens = {
480
464
  // was shadowed and secondary text rendered gray.600, lighter than our
481
465
  // intended gray.900. _dark sits one step below `default` (~9.5:1 on the
482
466
  // dark canvas) to keep the default→muted hierarchy gap.
483
- value: { _light: '{colors.gray.900}', _dark: desaturatedGray[400] },
467
+ value: { _light: '{colors.gray.900}', _dark: '{colors.grayDark.400}' },
484
468
  },
485
469
  subtle: {
486
470
  // Tertiary / placeholder / icon text. `_light` (not `base`): Chakra's
487
471
  // default `fg.subtle` is `{ _light: gray.400 }`, which outranks `base` in
488
472
  // light mode — so `base` was shadowed and this rendered gray.400, much
489
473
  // lighter than our intended gray.700. _dark a11y-bumped from the straight
490
- // mirror (desaturatedGray[600] #8E939F, ~4.06:1 on bg.muted) to #989DA9
474
+ // mirror (grayDark.600 #8E939F, ~4.06:1 on bg.muted) to #989DA9
491
475
  // (~4.6:1) so it clears AA while staying below fg.muted.
492
- value: { _light: '{colors.gray.700}', _dark: '#989DA9' },
476
+ value: {
477
+ _light: '{colors.gray.700}',
478
+ _dark: '{colors.grayDark.fgSubtle}',
479
+ },
493
480
  },
494
481
  inverse: {
495
- value: { base: '{colors.gray.0}', _dark: desaturatedGray[1400] },
482
+ value: { base: '{colors.gray.0}', _dark: '{colors.grayDark.1400}' },
496
483
  },
497
484
  },
498
485
  /**
@@ -508,10 +495,10 @@ const semanticTokens = {
508
495
  // straight halved-saturation mirror (no a11y bump). `_light` repeats
509
496
  // Chakra's value so light is untouched.
510
497
  DEFAULT: {
511
- value: { _light: '{colors.gray.200}', _dark: desaturatedGray[800] },
498
+ value: { _light: '{colors.gray.200}', _dark: '{colors.grayDark.800}' },
512
499
  },
513
500
  default: {
514
- value: { base: '{colors.gray.300}', _dark: desaturatedGray[1100] },
501
+ value: { base: '{colors.gray.300}', _dark: '{colors.grayDark.1100}' },
515
502
  },
516
503
  subtle: {
517
504
  // `_light` (not `base`): Chakra's default `border.subtle` is
@@ -520,10 +507,10 @@ const semanticTokens = {
520
507
  // Chakra's near-white gray.50 (dividers/frames vanish). Pin `_light` so
521
508
  // our gray.200 wins. (`border.default`/`strong` are safe: Chakra has no
522
509
  // default for those names, so `base` is honoured.)
523
- value: { _light: '{colors.gray.200}', _dark: desaturatedGray[1300] },
510
+ value: { _light: '{colors.gray.200}', _dark: '{colors.grayDark.1300}' },
524
511
  },
525
512
  strong: {
526
- value: { base: '{colors.gray.500}', _dark: desaturatedGray[900] },
513
+ value: { base: '{colors.gray.500}', _dark: '{colors.grayDark.900}' },
527
514
  },
528
515
  },
529
516
  },
@@ -672,6 +659,49 @@ const colors = {
672
659
  1400: { value: '#141924' }, // Dark backgrounds
673
660
  1500: { value: '#0B0E17' }, // Darkest background
674
661
  },
662
+ /**
663
+ * Dark-mode neutral palette — the halved-saturation counterpart of each
664
+ * primitive `gray.N` (same hue and lightness, HSL saturation cut by ~50%,
665
+ * e.g. `gray.1300` #1E2433 @ 26% → #23262E @ 13%). The blue-tinted `gray`
666
+ * ramp reads as the right neutral in light mode but turns muddy/
667
+ * over-chromatic as a dark surface, so every dark-mode neutral in the
668
+ * semantic layer (`slate.*`, and the `_dark` of `bg`/`fg`/`border`) resolves
669
+ * to a step of this scale instead of a raw `gray` step. Light mode is
670
+ * untouched — it keeps referencing `{colors.gray.*}` verbatim.
671
+ *
672
+ * Exposed as a primitive scale (rather than the previous inlined hex
673
+ * literals) so a consumer theme — e.g. FactChat's per-tenant
674
+ * `theme_color_overrides` — can rebrand dark mode by overriding these
675
+ * tokens, the same way overriding `blue.*` retints the `primary.*` ramp.
676
+ *
677
+ * The three `fg*` steps are the hand-tuned a11y lifts documented at their
678
+ * consuming tokens (`slate.600`/`slate.700`/`fg.subtle` in dark mode): the
679
+ * straight mirrors measured under WCAG AA 4.5:1 on the dark canvas/surface,
680
+ * so these sit slightly lighter than their scale neighbours.
681
+ */
682
+ grayDark: {
683
+ 0: { value: '#FEFEFF' },
684
+ 50: { value: '#F8F9FB' },
685
+ 100: { value: '#F2F4F7' },
686
+ 200: { value: '#E5E8EC' },
687
+ 300: { value: '#D2D5DB' },
688
+ 400: { value: '#B6BAC3' },
689
+ 500: { value: '#A2A6B1' },
690
+ 600: { value: '#8E939F' },
691
+ 700: { value: '#7C818D' },
692
+ 800: { value: '#6A6F7C' },
693
+ 900: { value: '#595E6B' },
694
+ 1000: { value: '#4A4E5A' },
695
+ 1100: { value: '#3C404B' },
696
+ 1200: { value: '#30343C' },
697
+ 1300: { value: '#23262E' },
698
+ 1400: { value: '#181A20' },
699
+ 1500: { value: '#0E1014' },
700
+ // A11y-lifted foreground steps (see scale doc above).
701
+ fg600: { value: '#898E99' },
702
+ fg700: { value: '#8D919D' },
703
+ fgSubtle: { value: '#989DA9' },
704
+ },
675
705
  /**
676
706
  * Legacy purple palette (aliased to violet for backwards compatibility)
677
707
  * @deprecated Use `violet` instead
@@ -1 +1 @@
1
- {"version":3,"file":"colors.mjs","sources":["../../src/theme/colors.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colors.mjs","sources":["../../src/theme/colors.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindlogic-ai/logician-ui",
3
- "version": "4.0.0-alpha.21",
3
+ "version": "4.0.0-alpha.23",
4
4
  "description": "A comprehensive React design system built on Chakra UI",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -104,6 +104,7 @@
104
104
  "@typescript-eslint/eslint-plugin": "^6.0.0",
105
105
  "@typescript-eslint/parser": "^6.0.0",
106
106
  "@vitejs/plugin-react": "^4.0.0",
107
+ "axe-core": "^4.13.0",
107
108
  "eslint": "^8.45.0",
108
109
  "eslint-config-prettier": "^10.1.8",
109
110
  "eslint-plugin-import": "^2.32.0",
@@ -1,3 +1,4 @@
1
+ import { useId } from 'react';
1
2
  import { Box, Flex, VStack } from '@chakra-ui/react';
2
3
 
3
4
  import { useTranslate } from '@/hooks/useTranslate';
@@ -20,6 +21,8 @@ export function ErrorFallback({
20
21
  }: ErrorFallbackProps) {
21
22
  const translate = useTranslate();
22
23
  const showToast = useToast();
24
+ // Names the landmark below with the same words the card shows as its title.
25
+ const titleId = useId();
23
26
 
24
27
  const errorInfo = {
25
28
  errorId:
@@ -61,7 +64,22 @@ User Agent: ${errorInfo.userAgent}`;
61
64
  };
62
65
 
63
66
  return (
64
- <Flex minH="100vh" align="center" justify="center" p={8}>
67
+ // A landmark, and a named one. This card replaces whatever failed — often
68
+ // the whole page, so the host's `<main>` goes with it — and a screen-reader
69
+ // user then has nothing to navigate by: axe reports every node under
70
+ // `region`, and there is no landmark to jump to (KWCAG 2.1 5.2.4.1 반복
71
+ // 영역 건너뛰기). A `<section>` labelled by the error title is a region
72
+ // landmark wherever it renders, which `<main>` would not be — a segment-level
73
+ // boundary leaves the host's `<main>` in place, and two of those is its own
74
+ // failure.
75
+ <Flex
76
+ as="section"
77
+ aria-labelledby={titleId}
78
+ minH="100vh"
79
+ align="center"
80
+ justify="center"
81
+ p={8}
82
+ >
65
83
  <Container disableResponsive maxW="container.sm">
66
84
  <Card
67
85
  p={12}
@@ -83,7 +101,12 @@ User Agent: ${errorInfo.userAgent}`;
83
101
 
84
102
  {/* Error Title */}
85
103
  <VStack gap={3} align="center" w="full">
86
- <H1 color="fg.default" textStyle="h2" fontWeight="bold">
104
+ <H1
105
+ id={titleId}
106
+ color="fg.default"
107
+ textStyle="h2"
108
+ fontWeight="bold"
109
+ >
87
110
  {translate('error_boundary_title')}
88
111
  </H1>
89
112
  <Subtitle color="fg.muted" textStyle="h5" maxW="md">
@@ -115,7 +138,11 @@ User Agent: ${errorInfo.userAgent}`;
115
138
  p={6}
116
139
  w="full"
117
140
  >
118
- <H4 color="primary.dark" mb={4} textAlign="center">
141
+ {/* `as="h2"`: `H4` is the type size wanted here, but this block
142
+ sits directly under the card's `<h1>` — an `<h4>` there skips
143
+ two levels and tells a screen-reader user there are sections
144
+ they missed (KWCAG 5.2.4.2 제목 제공). */}
145
+ <H4 as="h2" color="primary.dark" mb={4} textAlign="center">
119
146
  {translate('support_information')}
120
147
  </H4>
121
148
  <VStack gap={2} align="stretch" mb={4}>
@@ -27,8 +27,12 @@ export const FileInput = forwardRef<HTMLInputElement, FileInputProps>(
27
27
  };
28
28
 
29
29
  return (
30
+ // No `role="button"` on this wrapper. It is not a button — the `<label>`
31
+ // inside is what activates the file input — and claiming the role put an
32
+ // interactive element inside another (axe `nested-interactive`), which is
33
+ // a state screen readers have no sensible way to announce
34
+ // (KWCAG 2.1 5.4.2.1 웹 애플리케이션 접근성 준수).
30
35
  <Flex
31
- role="button"
32
36
  w="100%"
33
37
  h="100%"
34
38
  maxH={32}
@@ -42,8 +46,13 @@ export const FileInput = forwardRef<HTMLInputElement, FileInputProps>(
42
46
  borderRadius="md"
43
47
  {...containerStyle}
44
48
  >
49
+ {/* `className="group"`, not `role="group"`. The role was doing nothing for
50
+ assistive tech (a `<label>` may not be a group — axe
51
+ `aria-allowed-role`) and nothing for the hover effect either: Chakra's
52
+ `_groupHover` compiles to `.group:hover &`, so it needs the CLASS.
53
+ The reveal-on-hover below has therefore never fired. */}
45
54
  <label
46
- role="group"
55
+ className="group"
47
56
  style={{ width: '100%', height: '100%', cursor: 'pointer' }}
48
57
  >
49
58
  {bgImage && (
@@ -22,7 +22,12 @@ const H2Wrapper = (props: any) => <H2 {...props} />;
22
22
  const H3Wrapper = (props: any) => <H3 {...props} />;
23
23
  const H4Wrapper = (props: any) => <H4 {...props} />;
24
24
  const H5Wrapper = (props: any) => <H5 {...props} />;
25
- const SubtitleWrapper = (props: any) => <Subtitle {...props} />;
25
+ // `as="h6"` explicitly. `Subtitle` renders a paragraph by default now (its call
26
+ // sites are overwhelmingly helper copy that was never a heading), but this
27
+ // wrapper is markdown's `h6` — a heading the author actually wrote. Inheriting
28
+ // the new default here would silently drop `###### 제목` out of the document
29
+ // outline, which is the same KWCAG 5.2.4.2 (제목 제공) defect inverted.
30
+ const SubtitleWrapper = (props: any) => <Subtitle as="h6" {...props} />;
26
31
  const TheadWrapper = (props: any) => <Thead {...props} />;
27
32
  const TbodyWrapper = (props: any) => <Tbody {...props} />;
28
33
  const TrWrapper = (props: any) => <Tr {...props} />;
@@ -81,6 +81,11 @@ export const Pagination = ({
81
81
  <SelectField<number>
82
82
  size="sm"
83
83
  width="5.5rem"
84
+ // The visible label for this control is the "개씩 보기" text beside
85
+ // it, which the select itself cannot claim — so it carries the
86
+ // same words as its own hidden label rather than shipping
87
+ // nameless (KWCAG 5.3.4.1 레이블 제공).
88
+ ariaLabel={translate('pagination_items_per_page') as string}
84
89
  options={itemsPerPageOptions.map((option) => ({
85
90
  label: option.toString(),
86
91
  value: option,
@@ -1,4 +1,4 @@
1
- import { forwardRef } from 'react';
1
+ import { forwardRef, useId } from 'react';
2
2
  import { RadioGroup, RadioGroupItemControlProps } from '@chakra-ui/react';
3
3
 
4
4
  import { focusRing } from '@/utils/focusRing';
@@ -6,9 +6,23 @@ import { focusRing } from '@/utils/focusRing';
6
6
  export const RadioControl = forwardRef<
7
7
  HTMLDivElement,
8
8
  RadioGroupItemControlProps
9
- >((props, ref) => (
10
- <RadioGroup.ItemControl ref={ref} {...focusRing} {...props}>
11
- <RadioGroup.ItemIndicator />
12
- </RadioGroup.ItemControl>
13
- ));
9
+ >((props, ref) => {
10
+ // Chakra derives the indicator's id from the same `ids.itemControl` it gives
11
+ // the control it sits inside, so every radio on the page shipped TWO elements
12
+ // with one id — a markup error under KWCAG 2.1 5.4.1.1 마크업 오류 방지, which
13
+ // Korean evaluators still count even though WCAG 2.2 dropped SC 4.1.1. It also
14
+ // breaks anything that resolves the control by id, since `getElementById`
15
+ // returns whichever came first.
16
+ //
17
+ // Nothing references the indicator — it is the dot inside the control — so any
18
+ // unique value fixes it, and `useId` is the one that stays stable across
19
+ // server and client render.
20
+ const indicatorId = useId();
21
+
22
+ return (
23
+ <RadioGroup.ItemControl ref={ref} {...focusRing} {...props}>
24
+ <RadioGroup.ItemIndicator id={indicatorId} />
25
+ </RadioGroup.ItemControl>
26
+ );
27
+ });
14
28
  RadioControl.displayName = 'Radio.Control';
@@ -19,6 +19,7 @@ export function ComboboxField<T = string>({
19
19
  onChange,
20
20
  placeholder,
21
21
  label,
22
+ ariaLabel,
22
23
  size = 'md',
23
24
  invalid,
24
25
  disabled,
@@ -60,7 +61,16 @@ export function ComboboxField<T = string>({
60
61
  }}
61
62
  onInputValueChange={(details) => filter(details.inputValue)}
62
63
  >
63
- {label != null && <Combobox.Label>{label}</Combobox.Label>}
64
+ {/* Same as `SelectField`: the label part is the target of the input's
65
+ `aria-labelledby`, so omitting it leaves the control unnamed rather
66
+ than unlabelled (KWCAG 5.3.4.1 레이블 제공). */}
67
+ {label != null ? (
68
+ <Combobox.Label>{label}</Combobox.Label>
69
+ ) : (
70
+ (ariaLabel ?? placeholder) && (
71
+ <Combobox.Label srOnly>{ariaLabel ?? placeholder}</Combobox.Label>
72
+ )
73
+ )}
64
74
  <Combobox.Control>
65
75
  <Combobox.Input placeholder={placeholder} />
66
76
  <Combobox.IndicatorGroup>
@@ -20,6 +20,22 @@ interface FieldBaseProps<T> {
20
20
  placeholder?: string;
21
21
  /** Optional label rendered above the control. */
22
22
  label?: ReactNode;
23
+ /**
24
+ * Accessible name for the trigger when no visible `label` is rendered — a
25
+ * field labelled by a table column header, a `FieldRow`, or the sentence
26
+ * around it.
27
+ *
28
+ * Without one of `label` / `ariaLabel` / `placeholder` the trigger has **no
29
+ * accessible name at all**: the composition points `aria-labelledby` at a
30
+ * label part that is not rendered, the reference dangles, and the control
31
+ * announces as a bare "button" however much text it shows (KWCAG 2.1
32
+ * 5.3.4.1 레이블 제공, axe `button-name`).
33
+ *
34
+ * Rendered as a visually hidden label rather than an `aria-label` so the name
35
+ * is in the server-rendered markup — an attribute applied after hydration
36
+ * leaves a window in which the control is nameless.
37
+ */
38
+ ariaLabel?: string;
23
39
  size?: SelectSize;
24
40
  invalid?: boolean;
25
41
  disabled?: boolean;
@@ -19,6 +19,7 @@ export function SelectField<T = string>({
19
19
  onChange,
20
20
  placeholder,
21
21
  label,
22
+ ariaLabel,
22
23
  size = 'md',
23
24
  invalid,
24
25
  disabled,
@@ -61,7 +62,19 @@ export function SelectField<T = string>({
61
62
  }}
62
63
  >
63
64
  <Select.HiddenSelect />
64
- {label != null && <Select.Label>{label}</Select.Label>}
65
+ {/* The label part is what the trigger's `aria-labelledby` points at, and
66
+ Chakra emits that reference whether or not the part is rendered. Leave
67
+ it out and the reference dangles, so the trigger resolves to no name —
68
+ a "button" to a screen reader, whatever the selected option says
69
+ (KWCAG 5.3.4.1 레이블 제공). So it is always rendered: visibly when the
70
+ field has a label, hidden when the name lives elsewhere on screen. */}
71
+ {label != null ? (
72
+ <Select.Label>{label}</Select.Label>
73
+ ) : (
74
+ (ariaLabel ?? placeholder) && (
75
+ <Select.Label srOnly>{ariaLabel ?? placeholder}</Select.Label>
76
+ )
77
+ )}
65
78
  <Select.Control>
66
79
  <Select.Trigger>
67
80
  <Select.ValueText placeholder={placeholder} />