@salt-ds/lab 1.0.0-alpha.84 → 1.0.0-alpha.86

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 (90) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/css/salt-lab.css +143 -181
  3. package/dist-cjs/index.js +4 -17
  4. package/dist-cjs/index.js.map +1 -1
  5. package/dist-cjs/kbd/Kbd.css.js +6 -0
  6. package/dist-cjs/kbd/Kbd.css.js.map +1 -0
  7. package/dist-cjs/kbd/Kbd.js +34 -0
  8. package/dist-cjs/kbd/Kbd.js.map +1 -0
  9. package/dist-cjs/rating/Rating.css.js +6 -0
  10. package/dist-cjs/rating/Rating.css.js.map +1 -0
  11. package/dist-cjs/rating/Rating.js +136 -0
  12. package/dist-cjs/rating/Rating.js.map +1 -0
  13. package/dist-cjs/rating/RatingItem.css.js +6 -0
  14. package/dist-cjs/rating/RatingItem.css.js.map +1 -0
  15. package/dist-cjs/rating/RatingItem.js +70 -0
  16. package/dist-cjs/rating/RatingItem.js.map +1 -0
  17. package/dist-cjs/tokenized-input/useTokenizedInput.js +1 -0
  18. package/dist-cjs/tokenized-input/useTokenizedInput.js.map +1 -1
  19. package/dist-es/index.js +2 -8
  20. package/dist-es/index.js.map +1 -1
  21. package/dist-es/kbd/Kbd.css.js +4 -0
  22. package/dist-es/kbd/Kbd.css.js.map +1 -0
  23. package/dist-es/{table/TBody.js → kbd/Kbd.js} +11 -9
  24. package/dist-es/kbd/Kbd.js.map +1 -0
  25. package/dist-es/rating/Rating.css.js +4 -0
  26. package/dist-es/rating/Rating.css.js.map +1 -0
  27. package/dist-es/rating/Rating.js +134 -0
  28. package/dist-es/rating/Rating.js.map +1 -0
  29. package/dist-es/rating/RatingItem.css.js +4 -0
  30. package/dist-es/rating/RatingItem.css.js.map +1 -0
  31. package/dist-es/rating/RatingItem.js +68 -0
  32. package/dist-es/rating/RatingItem.js.map +1 -0
  33. package/dist-es/tokenized-input/useTokenizedInput.js +1 -0
  34. package/dist-es/tokenized-input/useTokenizedInput.js.map +1 -1
  35. package/dist-types/index.d.ts +2 -1
  36. package/dist-types/kbd/Kbd.d.ts +8 -0
  37. package/dist-types/kbd/index.d.ts +1 -0
  38. package/dist-types/rating/Rating.d.ts +50 -0
  39. package/dist-types/rating/RatingItem.d.ts +47 -0
  40. package/dist-types/rating/index.d.ts +1 -0
  41. package/package.json +2 -2
  42. package/dist-cjs/table/TBody.js +0 -32
  43. package/dist-cjs/table/TBody.js.map +0 -1
  44. package/dist-cjs/table/TD.js +0 -34
  45. package/dist-cjs/table/TD.js.map +0 -1
  46. package/dist-cjs/table/TFoot.js +0 -45
  47. package/dist-cjs/table/TFoot.js.map +0 -1
  48. package/dist-cjs/table/TH.js +0 -34
  49. package/dist-cjs/table/TH.js.map +0 -1
  50. package/dist-cjs/table/THead.js +0 -45
  51. package/dist-cjs/table/THead.js.map +0 -1
  52. package/dist-cjs/table/TR.js +0 -30
  53. package/dist-cjs/table/TR.js.map +0 -1
  54. package/dist-cjs/table/Table.css.js +0 -6
  55. package/dist-cjs/table/Table.css.js.map +0 -1
  56. package/dist-cjs/table/Table.js +0 -66
  57. package/dist-cjs/table/Table.js.map +0 -1
  58. package/dist-cjs/table/TableContainer.js +0 -85
  59. package/dist-cjs/table/TableContainer.js.map +0 -1
  60. package/dist-cjs/table/TableContext.js +0 -20
  61. package/dist-cjs/table/TableContext.js.map +0 -1
  62. package/dist-es/table/TBody.js.map +0 -1
  63. package/dist-es/table/TD.js +0 -32
  64. package/dist-es/table/TD.js.map +0 -1
  65. package/dist-es/table/TFoot.js +0 -43
  66. package/dist-es/table/TFoot.js.map +0 -1
  67. package/dist-es/table/TH.js +0 -32
  68. package/dist-es/table/TH.js.map +0 -1
  69. package/dist-es/table/THead.js +0 -43
  70. package/dist-es/table/THead.js.map +0 -1
  71. package/dist-es/table/TR.js +0 -28
  72. package/dist-es/table/TR.js.map +0 -1
  73. package/dist-es/table/Table.css.js +0 -4
  74. package/dist-es/table/Table.css.js.map +0 -1
  75. package/dist-es/table/Table.js +0 -63
  76. package/dist-es/table/Table.js.map +0 -1
  77. package/dist-es/table/TableContainer.js +0 -83
  78. package/dist-es/table/TableContainer.js.map +0 -1
  79. package/dist-es/table/TableContext.js +0 -17
  80. package/dist-es/table/TableContext.js.map +0 -1
  81. package/dist-types/table/TBody.d.ts +0 -4
  82. package/dist-types/table/TD.d.ts +0 -10
  83. package/dist-types/table/TFoot.d.ts +0 -20
  84. package/dist-types/table/TH.d.ts +0 -10
  85. package/dist-types/table/THead.d.ts +0 -20
  86. package/dist-types/table/TR.d.ts +0 -4
  87. package/dist-types/table/Table.d.ts +0 -20
  88. package/dist-types/table/TableContainer.d.ts +0 -4
  89. package/dist-types/table/TableContext.d.ts +0 -8
  90. package/dist-types/table/index.d.ts +0 -8
package/CHANGELOG.md CHANGED
@@ -1,5 +1,56 @@
1
1
  # @salt-ds/lab
2
2
 
3
+ ## 1.0.0-alpha.86
4
+
5
+ ### Minor Changes
6
+
7
+ - a16cbc5: `Rating` has been added to allow users to provide feedback relating to your product or experience.
8
+
9
+ Basic usage:
10
+
11
+ ```jsx
12
+ import { Rating } from "@salt-ds/lab";
13
+
14
+ function App() {
15
+ const [value, setValue] = useState(0);
16
+
17
+ return (
18
+ <Rating
19
+ value={value}
20
+ onValueChange={(event, newValue) => setValue(newValue)}
21
+ />
22
+ );
23
+ }
24
+ ```
25
+
26
+ ### Patch Changes
27
+
28
+ - Updated dependencies [47d113d]
29
+ - Updated dependencies [a16cbc5]
30
+ - @salt-ds/core@1.57.0
31
+
32
+ ## 1.0.0-alpha.85
33
+
34
+ ### Minor Changes
35
+
36
+ - 972e37e: Added mobile density tokens.
37
+ - 4507919: Removed `Table` from labs and promoted to core.
38
+ - 4badc14: Added `Kbd` component.
39
+
40
+ `Kbd` is a decorative element used to represent specific keyboard keys.
41
+
42
+ ```tsx
43
+ <Kbd>Option</Kbd>
44
+ <Kbd>Cmd</Kbd>
45
+ <Kbd>L</Kbd>
46
+ ```
47
+
48
+ ### Patch Changes
49
+
50
+ - Updated dependencies [972e37e]
51
+ - Updated dependencies [4507919]
52
+ - @salt-ds/core@1.56.0
53
+
3
54
  ## 1.0.0-alpha.84
4
55
 
5
56
  ### Minor Changes
package/css/salt-lab.css CHANGED
@@ -1771,6 +1771,36 @@
1771
1771
  padding-right: var(--inputLegacy-staticAdornment-padding);
1772
1772
  }
1773
1773
 
1774
+ /* src/kbd/Kbd.css */
1775
+ .saltKbd-primary {
1776
+ --kbd-background: var(--salt-container-primary-background);
1777
+ }
1778
+ .saltKbd-secondary {
1779
+ --kbd-background: var(--salt-container-secondary-background);
1780
+ }
1781
+ .saltKbd-tertiary {
1782
+ --kbd-background: var(--salt-container-tertiary-background);
1783
+ }
1784
+ .saltKbd {
1785
+ display: inline-flex;
1786
+ box-sizing: border-box;
1787
+ width: fit-content;
1788
+ border-radius: var(--salt-palette-corner-weaker);
1789
+ border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-container-primary-borderColor);
1790
+ background: var(--kbd-background);
1791
+ box-shadow: 0 var(--salt-size-fixed-100) 0 0 var(--salt-container-primary-borderColor);
1792
+ height: calc(var(--salt-size-base) - var(--salt-spacing-100));
1793
+ align-items: center;
1794
+ padding: 0 var(--salt-spacing-50);
1795
+ text-transform: capitalize;
1796
+ color: var(--salt-content-primary-foreground);
1797
+ font-family: var(--salt-text-code-fontFamily);
1798
+ font-size: var(--salt-text-fontSize);
1799
+ font-style: normal;
1800
+ font-weight: var(--salt-text-fontWeight);
1801
+ line-height: var(--salt-text-lineHeight);
1802
+ }
1803
+
1774
1804
  /* src/layer-layout/LayerLayout.css */
1775
1805
  .saltLayerLayout {
1776
1806
  --layerLayout-boxShadow: var(--saltLayerLayout-boxShadow, var(--salt-overlayable-shadow-modal));
@@ -2440,6 +2470,118 @@
2440
2470
  z-index: var(--salt-zIndex-default);
2441
2471
  }
2442
2472
 
2473
+ /* src/rating/Rating.css */
2474
+ .saltRating {
2475
+ display: flex;
2476
+ gap: calc(2 * var(--salt-spacing-fixed-600));
2477
+ align-items: center;
2478
+ box-sizing: border-box;
2479
+ }
2480
+ .saltFormField .saltRating {
2481
+ min-height: var(--salt-size-base);
2482
+ }
2483
+ .saltRating-wrapper-top,
2484
+ .saltRating-wrapper-bottom {
2485
+ flex-direction: column;
2486
+ }
2487
+ .saltRating-wrapper-left,
2488
+ .saltRating-wrapper-right {
2489
+ flex-direction: row;
2490
+ }
2491
+ .saltRating-container {
2492
+ display: flex;
2493
+ flex-direction: row;
2494
+ gap: calc(2 * var(--salt-spacing-fixed-600));
2495
+ flex-wrap: nowrap;
2496
+ justify-content: flex-start;
2497
+ align-items: stretch;
2498
+ }
2499
+ .saltRating-label {
2500
+ color: var(--salt-content-primary-foreground);
2501
+ font-family: var(--salt-text-fontFamily);
2502
+ font-size: var(--salt-text-fontSize);
2503
+ font-weight: var(--salt-text-fontWeight);
2504
+ line-height: var(--salt-text-lineHeight);
2505
+ }
2506
+ .saltRating-label.saltRating-label-top,
2507
+ .saltRating-label.saltRating-label-bottom {
2508
+ text-align: center;
2509
+ }
2510
+ .saltRating-label.saltRating-label-left {
2511
+ text-align: right;
2512
+ }
2513
+
2514
+ /* src/rating/RatingItem.css */
2515
+ .saltRatingItem {
2516
+ height: var(--salt-size-icon);
2517
+ width: var(--salt-size-icon);
2518
+ display: flex;
2519
+ position: relative;
2520
+ align-items: center;
2521
+ justify-content: center;
2522
+ cursor: var(--salt-cursor-hover);
2523
+ }
2524
+ .saltRatingItem-disabled,
2525
+ .saltRatingItem-readOnly {
2526
+ cursor: default;
2527
+ }
2528
+ .saltRatingItem-input {
2529
+ position: absolute;
2530
+ opacity: 0;
2531
+ width: 100%;
2532
+ height: 100%;
2533
+ margin: 0;
2534
+ cursor: inherit;
2535
+ z-index: 1;
2536
+ }
2537
+ .saltRatingItem-input::before {
2538
+ content: "";
2539
+ position: absolute;
2540
+ width: 100%;
2541
+ height: 100%;
2542
+ padding: var(--salt-spacing-fixed-600);
2543
+ transform: translate(-50%, -50%);
2544
+ top: 50%;
2545
+ left: 50%;
2546
+ box-sizing: content-box;
2547
+ }
2548
+ .saltRatingItem-icon {
2549
+ pointer-events: none;
2550
+ display: flex;
2551
+ align-items: center;
2552
+ justify-content: center;
2553
+ color: var(--salt-sentiment-neutral-dataviz);
2554
+ }
2555
+ .saltRatingItem-icon .saltIcon {
2556
+ --saltIcon-size: var(--salt-size-icon);
2557
+ }
2558
+ .saltRatingItem-input:focus-visible ~ .saltRatingItem-icon::after {
2559
+ content: "";
2560
+ position: absolute;
2561
+ width: 100%;
2562
+ height: 100%;
2563
+ padding: var(--salt-spacing-fixed-600);
2564
+ transform: translate(-50%, -50%);
2565
+ top: 50%;
2566
+ left: 50%;
2567
+ box-sizing: content-box;
2568
+ border-radius: var(--salt-palette-corner-strongest);
2569
+ outline: var(--salt-focused-outline);
2570
+ outline-offset: calc(-1 * var(--salt-spacing-fixed-200));
2571
+ }
2572
+ .saltRatingItem-disabled {
2573
+ cursor: var(--salt-cursor-disabled);
2574
+ opacity: var(--salt-palette-opacity-disabled);
2575
+ }
2576
+ .saltRatingItem-disabled .saltRatingItem-input {
2577
+ cursor: var(--salt-cursor-disabled);
2578
+ }
2579
+ .saltRatingItem-selected .saltRatingItem-icon,
2580
+ .saltRatingItem-hovered .saltRatingItem-icon,
2581
+ .saltRatingItem-unselecting .saltRatingItem-icon {
2582
+ color: var(--salt-sentiment-accent-dataviz);
2583
+ }
2584
+
2443
2585
  /* src/search-input/SearchInput.css */
2444
2586
  .saltSearchInput .saltInputLegacy-input::-webkit-search-cancel-button {
2445
2587
  display: none;
@@ -2529,186 +2671,6 @@
2529
2671
  color: var(--salt-content-bold-foreground);
2530
2672
  }
2531
2673
 
2532
- /* src/table/Table.css */
2533
- .saltTable {
2534
- --table-header-height: calc(var(--salt-size-base) + var(--salt-spacing-100) + var(--salt-size-fixed-100));
2535
- --table-footer-height: calc(var(--salt-size-base) + var(--salt-spacing-100) + var(--salt-size-fixed-100));
2536
- --table-row-height: calc(var(--salt-size-base) + var(--salt-spacing-100) + var(--salt-size-fixed-100));
2537
- }
2538
- .saltTable-primary {
2539
- --table-background: var(--salt-container-primary-background);
2540
- }
2541
- .saltTable-secondary {
2542
- --table-background: var(--salt-container-secondary-background);
2543
- }
2544
- .saltTable-tertiary {
2545
- --table-background: var(--salt-container-tertiary-background);
2546
- }
2547
- .saltTable-divider-primary {
2548
- --table-divider-color: var(--salt-separable-primary-borderColor);
2549
- }
2550
- .saltTable-divider-secondary {
2551
- --table-divider-color: var(--salt-separable-secondary-borderColor);
2552
- }
2553
- .saltTable-divider-tertiary {
2554
- --table-divider-color: var(--salt-separable-tertiary-borderColor);
2555
- }
2556
- table.saltTable-zebra-tertiary tbody tr:nth-of-type(odd) {
2557
- --table-background: var(--salt-container-tertiary-background);
2558
- }
2559
- table.saltTable-primary.saltTable-zebra tbody tr:nth-of-type(odd) {
2560
- --table-background: var(--salt-container-secondary-background);
2561
- }
2562
- table.saltTable-secondary.saltTable-zebra tbody tr:nth-of-type(odd) {
2563
- --table-background: var(--salt-container-primary-background);
2564
- }
2565
- table.saltTable-tertiary.saltTable-zebra tbody tr:nth-of-type(odd) {
2566
- --table-background: var(--salt-container-primary-background);
2567
- }
2568
- table.saltTable {
2569
- border-spacing: 0;
2570
- border-radius: var(--salt-palette-corner, 0);
2571
- border-collapse: collapse;
2572
- color: var(--salt-content-primary-foreground);
2573
- font-family: var(--salt-text-fontFamily);
2574
- font-size: var(--salt-text-fontSize);
2575
- line-height: var(--salt-text-lineHeight);
2576
- width: 100%;
2577
- }
2578
- table.saltTable tr {
2579
- background: var(--table-background);
2580
- }
2581
- table.saltTable tbody tr {
2582
- height: var(--table-row-height);
2583
- min-height: var(--table-row-height);
2584
- }
2585
- table.saltTable tbody tr:not(:last-child) {
2586
- border-bottom: var(--salt-borderStyle-solid) var(--table-divider-color) var(--salt-size-fixed-100);
2587
- }
2588
- table.saltTable.saltTable-divider-none tbody tr {
2589
- --table-divider-color: transparent;
2590
- }
2591
- table.saltTable thead {
2592
- border-start-start-radius: var(--salt-palette-corner);
2593
- border-start-end-radius: var(--salt-palette-corner);
2594
- color: var(--salt-content-secondary-foreground);
2595
- height: var(--table-header-height);
2596
- min-height: var(--table-header-height);
2597
- font-size: var(--salt-text-label-fontSize);
2598
- font-weight: var(--salt-text-label-fontWeight-strong);
2599
- line-height: var(--salt-text-label-lineHeight);
2600
- }
2601
- table.saltTable thead.saltTable-thead-sticky {
2602
- position: sticky;
2603
- top: 0;
2604
- }
2605
- table.saltTable thead.saltTable-thead-primary tr {
2606
- background: var(--salt-container-primary-background);
2607
- }
2608
- table.saltTable thead.saltTable-thead-secondary tr {
2609
- background: var(--salt-container-secondary-background);
2610
- }
2611
- table.saltTable thead.saltTable-thead-tertiary tr {
2612
- background: var(--salt-container-tertiary-background);
2613
- }
2614
- table.saltTable thead.saltTable-thead tr {
2615
- border-bottom: var(--salt-borderStyle-solid) var(--table-header-divider-color) var(--salt-size-fixed-100);
2616
- }
2617
- table.saltTable thead.saltTable-thead-divider-primary {
2618
- --table-header-divider-color: var(--salt-separable-primary-borderColor);
2619
- }
2620
- table.saltTable thead.saltTable-thead-divider-secondary {
2621
- --table-header-divider-color: var(--salt-separable-secondary-borderColor);
2622
- }
2623
- table.saltTable thead.saltTable-thead-divider-tertiary {
2624
- --table-header-divider-color: var(--salt-separable-tertiary-borderColor);
2625
- }
2626
- table.saltTable thead.saltTable-thead-divider-none {
2627
- --table-header-divider-color: transparent;
2628
- }
2629
- table.saltTable tfoot {
2630
- border-end-start-radius: var(--salt-palette-corner);
2631
- border-end-end-radius: var(--salt-palette-corner);
2632
- color: var(--salt-content-primary-foreground);
2633
- height: var(--table-footer-height);
2634
- min-height: var(--table-footer-height);
2635
- font-size: var(--salt-text-fontSize);
2636
- line-height: var(--salt-text-lineHeight);
2637
- font-weight: var(--salt-text-fontWeight-strong);
2638
- }
2639
- table.saltTable tfoot.saltTable-tfoot-sticky {
2640
- position: sticky;
2641
- bottom: 0;
2642
- }
2643
- table.saltTable tfoot.saltTable-tfoot tr {
2644
- border-top: var(--salt-borderStyle-solid) var(--table-footer-divider-color) var(--salt-size-fixed-100);
2645
- }
2646
- table.saltTable tfoot.saltTable-tfoot-primary tr {
2647
- background: var(--salt-container-primary-background);
2648
- }
2649
- table.saltTable tfoot.saltTable-tfoot-secondary tr {
2650
- background: var(--salt-container-secondary-background);
2651
- }
2652
- table.saltTable tfoot.saltTable-tfoot-tertiary tr {
2653
- background: var(--salt-container-tertiary-background);
2654
- }
2655
- table.saltTable tfoot.saltTable-tfoot-divider-primary tr {
2656
- --table-footer-divider-color: var(--salt-separable-primary-borderColor);
2657
- }
2658
- table.saltTable tfoot.saltTable-tfoot-divider-secondary tr {
2659
- --table-footer-divider-color: var(--salt-separable-secondary-borderColor);
2660
- }
2661
- table.saltTable tfoot.saltTable-tfoot-divider-tertiary tr {
2662
- --table-footer-divider-color: var(--salt-separable-tertiary-borderColor);
2663
- }
2664
- table.saltTable tfoot.saltTable-tfoot-divider-none tr {
2665
- --table-footer-divider-color: transparent;
2666
- }
2667
- table.saltTable th {
2668
- padding: calc(var(--salt-spacing-75) + var(--salt-spacing-50)) var(--salt-spacing-100);
2669
- padding-top: calc(var(--salt-spacing-75) + var(--salt-spacing-50) + var(--salt-size-fixed-100));
2670
- position: relative;
2671
- text-align: start;
2672
- vertical-align: top;
2673
- font-weight: inherit;
2674
- }
2675
- table.saltTable th.saltTable-th-align-left {
2676
- text-align: start;
2677
- }
2678
- table.saltTable th.saltTable-th-align-right {
2679
- text-align: end;
2680
- }
2681
- table.saltTable tbody th[scope=row] {
2682
- font-weight: var(--salt-text-fontWeight-strong);
2683
- line-height: var(--salt-text-lineHeight);
2684
- }
2685
- table.saltTable th + th::before {
2686
- background: var(--salt-separable-tertiary-borderColor);
2687
- content: "";
2688
- position: absolute;
2689
- z-index: 1;
2690
- display: block;
2691
- width: var(--salt-size-fixed-100);
2692
- height: calc(100% - var(--salt-spacing-200));
2693
- left: 0;
2694
- top: var(--salt-spacing-100);
2695
- }
2696
- table.saltTable td {
2697
- height: 100%;
2698
- vertical-align: top;
2699
- padding: calc(var(--salt-spacing-75) + var(--salt-spacing-50)) var(--salt-spacing-100);
2700
- }
2701
- table.saltTable td.saltTable-td-align-left {
2702
- text-align: start;
2703
- }
2704
- table.saltTable td.saltTable-td-align-right {
2705
- text-align: end;
2706
- }
2707
- .saltTable-container {
2708
- width: 100%;
2709
- overflow: auto;
2710
- }
2711
-
2712
2674
  /* src/tabs/Tab.css */
2713
2675
  .saltTab {
2714
2676
  --saltEditableLabel-padding: 0;
@@ -4349,4 +4311,4 @@ table.saltTable td.saltTable-td-align-right {
4349
4311
  margin: calc(var(--salt-size-unit) / 2) 0;
4350
4312
  }
4351
4313
 
4352
- /* src/fcee4d88-fa75-4903-ad49-3fe9dde7a824.css */
4314
+ /* src/e9027b72-c8b2-4bef-b218-a3ff3976ba17.css */
package/dist-cjs/index.js CHANGED
@@ -66,6 +66,7 @@ var FormGroup = require('./form-group/FormGroup.js');
66
66
  var FormattedInput = require('./formatted-input/FormattedInput.js');
67
67
  var InputLegacy = require('./input-legacy/InputLegacy.js');
68
68
  var StaticInputAdornment = require('./input-legacy/StaticInputAdornment.js');
69
+ var Kbd = require('./kbd/Kbd.js');
69
70
  var LayerLayout = require('./layer-layout/LayerLayout.js');
70
71
  var Highlighter = require('./list/Highlighter.js');
71
72
  var List = require('./list/List.js');
@@ -108,6 +109,7 @@ var MetricHeader = require('./metric/MetricHeader.js');
108
109
  var Portal = require('./portal/Portal.js');
109
110
  var QueryInput = require('./query-input/QueryInput.js');
110
111
  var useQueryInput = require('./query-input/useQueryInput.js');
112
+ var Rating = require('./rating/Rating.js');
111
113
  var overflowUtils = require('./responsive/overflowUtils.js');
112
114
  var useDynamicCollapse = require('./responsive/useDynamicCollapse.js');
113
115
  var useInstantCollapse = require('./responsive/useInstantCollapse.js');
@@ -125,14 +127,6 @@ var StaticListItemContent = require('./static-list/StaticListItemContent.js');
125
127
  var SystemStatus = require('./system-status/SystemStatus.js');
126
128
  var SystemStatusActions = require('./system-status/SystemStatusActions.js');
127
129
  var SystemStatusContent = require('./system-status/SystemStatusContent.js');
128
- var Table = require('./table/Table.js');
129
- var TableContainer = require('./table/TableContainer.js');
130
- var TBody = require('./table/TBody.js');
131
- var TD = require('./table/TD.js');
132
- var TFoot = require('./table/TFoot.js');
133
- var TH = require('./table/TH.js');
134
- var THead = require('./table/THead.js');
135
- var TR = require('./table/TR.js');
136
130
  var Tab = require('./tabs/Tab.js');
137
131
  var TabActivationIndicator = require('./tabs/TabActivationIndicator.js');
138
132
  var TabPanel = require('./tabs/TabPanel.js');
@@ -243,6 +237,7 @@ exports.FormGroup = FormGroup.FormGroup;
243
237
  exports.FormattedInput = FormattedInput.FormattedInput;
244
238
  exports.Input = InputLegacy.InputLegacy;
245
239
  exports.StaticInputAdornment = StaticInputAdornment.StaticInputAdornment;
240
+ exports.Kbd = Kbd.Kbd;
246
241
  exports.LAYER_POSITIONS = LayerLayout.LAYER_POSITIONS;
247
242
  exports.LayerLayout = LayerLayout.LayerLayout;
248
243
  exports.Highlighter = Highlighter.Highlighter;
@@ -282,6 +277,7 @@ exports.MetricHeader = MetricHeader.MetricHeader;
282
277
  exports.Portal = Portal.Portal;
283
278
  exports.QueryInput = QueryInput.QueryInput;
284
279
  exports.useQueryInput = useQueryInput.useQueryInput;
280
+ exports.Rating = Rating.Rating;
285
281
  exports.DropdownPlaceholder = overflowUtils.DropdownPlaceholder;
286
282
  exports.NO_DATA = overflowUtils.NO_DATA;
287
283
  exports.addAll = overflowUtils.addAll;
@@ -324,15 +320,6 @@ exports.StaticListItemContent = StaticListItemContent.StaticListItemContent;
324
320
  exports.SystemStatus = SystemStatus.SystemStatus;
325
321
  exports.SystemStatusActions = SystemStatusActions.SystemStatusActions;
326
322
  exports.SystemStatusContent = SystemStatusContent.SystemStatusContent;
327
- exports.Table = Table.Table;
328
- exports.withTableBaseName = Table.withTableBaseName;
329
- exports.TableContainer = TableContainer.TableContainer;
330
- exports.TBody = TBody.TBody;
331
- exports.TD = TD.TD;
332
- exports.TFoot = TFoot.TFoot;
333
- exports.TH = TH.TH;
334
- exports.THead = THead.THead;
335
- exports.TR = TR.TR;
336
323
  exports.Tab = Tab.Tab;
337
324
  exports.TabActivationIndicator = TabActivationIndicator.TabActivationIndicator;
338
325
  exports.TabPanel = TabPanel.TabPanel;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var css_248z = ".saltKbd-primary {\n --kbd-background: var(--salt-container-primary-background);\n}\n\n.saltKbd-secondary {\n --kbd-background: var(--salt-container-secondary-background);\n}\n\n.saltKbd-tertiary {\n --kbd-background: var(--salt-container-tertiary-background);\n}\n\n.saltKbd {\n display: inline-flex;\n box-sizing: border-box;\n width: fit-content;\n border-radius: var(--salt-palette-corner-weaker);\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-container-primary-borderColor);\n background: var(--kbd-background);\n box-shadow: 0 var(--salt-size-fixed-100) 0 0 var(--salt-container-primary-borderColor);\n height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n align-items: center;\n padding: 0 var(--salt-spacing-50);\n text-transform: capitalize;\n color: var(--salt-content-primary-foreground);\n font-family: var(--salt-text-code-fontFamily);\n font-size: var(--salt-text-fontSize);\n font-style: normal;\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-lineHeight);\n}\n";
4
+
5
+ module.exports = css_248z;
6
+ //# sourceMappingURL=Kbd.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Kbd.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var styles = require('@salt-ds/styles');
6
+ var window = require('@salt-ds/window');
7
+ var clsx = require('clsx');
8
+ var react = require('react');
9
+ var Kbd$1 = require('./Kbd.css.js');
10
+
11
+ const withBaseName = core.makePrefixer("saltKbd");
12
+ const Kbd = react.forwardRef(
13
+ function Kbd2(props, ref) {
14
+ const { children, className, variant = "primary", ...rest } = props;
15
+ const targetWindow = window.useWindow();
16
+ styles.useComponentCssInjection({
17
+ testId: "salt-kbd",
18
+ css: Kbd$1,
19
+ window: targetWindow
20
+ });
21
+ return /* @__PURE__ */ jsxRuntime.jsx(
22
+ "kbd",
23
+ {
24
+ ref,
25
+ className: clsx.clsx(withBaseName(), withBaseName(variant), className),
26
+ ...rest,
27
+ children
28
+ }
29
+ );
30
+ }
31
+ );
32
+
33
+ exports.Kbd = Kbd;
34
+ //# sourceMappingURL=Kbd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Kbd.js","sources":["../src/kbd/Kbd.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\n\nimport kbdCss from \"./Kbd.css\";\n\nexport interface KbdProps extends ComponentPropsWithoutRef<\"kbd\"> {\n /**\n * The variant of the kbd. Defaults to `\"primary\"`.\n */\n variant?: \"primary\" | \"secondary\" | \"tertiary\";\n}\n\nconst withBaseName = makePrefixer(\"saltKbd\");\n\nexport const Kbd = forwardRef<HTMLDivElement, KbdProps>(\n function Kbd(props, ref) {\n const { children, className, variant = \"primary\", ...rest } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-kbd\",\n css: kbdCss,\n window: targetWindow,\n });\n\n return (\n <kbd\n ref={ref}\n className={clsx(withBaseName(), withBaseName(variant), className)}\n {...rest}\n >\n {children}\n </kbd>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","Kbd","useWindow","useComponentCssInjection","kbdCss","jsx","clsx"],"mappings":";;;;;;;;;;AAeA,MAAM,YAAA,GAAeA,kBAAa,SAAS,CAAA;AAEpC,MAAM,GAAA,GAAMC,gBAAA;AAAA,EACjB,SAASC,IAAAA,CAAI,KAAA,EAAO,GAAA,EAAK;AACvB,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,UAAU,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAE9D,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,UAAA;AAAA,MACR,GAAA,EAAKC,KAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,uBACEC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAWC,SAAA,CAAK,YAAA,IAAgB,YAAA,CAAa,OAAO,GAAG,SAAS,CAAA;AAAA,QAC/D,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var css_248z = ".saltRating {\n display: flex;\n gap: calc(2 * var(--salt-spacing-fixed-600));\n align-items: center;\n box-sizing: border-box;\n}\n\n.saltFormField .saltRating {\n min-height: var(--salt-size-base);\n}\n\n.saltRating-wrapper-top,\n.saltRating-wrapper-bottom {\n flex-direction: column;\n}\n\n.saltRating-wrapper-left,\n.saltRating-wrapper-right {\n flex-direction: row;\n}\n\n.saltRating-container {\n display: flex;\n flex-direction: row;\n gap: calc(2 * var(--salt-spacing-fixed-600));\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: stretch;\n}\n\n.saltRating-label {\n color: var(--salt-content-primary-foreground);\n font-family: var(--salt-text-fontFamily);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-lineHeight);\n}\n\n.saltRating-label.saltRating-label-top,\n.saltRating-label.saltRating-label-bottom {\n text-align: center;\n}\n\n.saltRating-label.saltRating-label-left {\n text-align: right;\n}\n";
4
+
5
+ module.exports = css_248z;
6
+ //# sourceMappingURL=Rating.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rating.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,136 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var styles = require('@salt-ds/styles');
6
+ var window = require('@salt-ds/window');
7
+ var clsx = require('clsx');
8
+ var react = require('react');
9
+ var Rating$1 = require('./Rating.css.js');
10
+ var RatingItem = require('./RatingItem.js');
11
+
12
+ const withBaseName = core.makePrefixer("saltRating");
13
+ const defaultGetLabel = (value) => `${value} Star${value > 1 ? "s" : ""}`;
14
+ const Rating = react.forwardRef(function Rating2({
15
+ value: valueProp,
16
+ defaultValue = 0,
17
+ name: nameProp,
18
+ onChange,
19
+ className,
20
+ readOnly,
21
+ disabled,
22
+ max = 5,
23
+ getLabel = defaultGetLabel,
24
+ getVisibleLabel,
25
+ labelPlacement = "right",
26
+ "aria-label": ariaLabel,
27
+ "aria-labelledby": ariaLabelledBy,
28
+ "aria-describedby": ariaDescribedBy,
29
+ ...restProps
30
+ }, ref) {
31
+ const targetWindow = window.useWindow();
32
+ styles.useComponentCssInjection({
33
+ testId: "salt-rating",
34
+ css: Rating$1,
35
+ window: targetWindow
36
+ });
37
+ const {
38
+ a11yProps: {
39
+ "aria-describedby": formFieldDescribedBy,
40
+ "aria-labelledby": formFieldLabelledBy
41
+ } = {}
42
+ } = core.useFormFieldProps();
43
+ const [hoveredValue, setHoveredValue] = react.useState(0);
44
+ const [selected, setSelected] = core.useControlled({
45
+ controlled: valueProp,
46
+ default: defaultValue,
47
+ name: "Rating",
48
+ state: "value"
49
+ });
50
+ const radioGroupRef = react.useRef(null);
51
+ const name = core.useId(nameProp);
52
+ const updateRating = (newValue, event) => {
53
+ setSelected(newValue);
54
+ onChange == null ? void 0 : onChange(event, newValue);
55
+ };
56
+ const handleMouseEnter = (event) => {
57
+ if (readOnly || disabled) return;
58
+ const itemValue = Number.parseInt(event.currentTarget.value, 10);
59
+ setHoveredValue(itemValue);
60
+ };
61
+ const handleChange = (event) => {
62
+ if (readOnly) {
63
+ event.preventDefault();
64
+ return;
65
+ }
66
+ const itemValue = Number.parseInt(event.currentTarget.value, 10);
67
+ updateRating(itemValue, event);
68
+ };
69
+ const isTopLeft = labelPlacement === "top" || labelPlacement === "left";
70
+ const displayLabel = getVisibleLabel && /* @__PURE__ */ jsxRuntime.jsx(
71
+ "div",
72
+ {
73
+ className: clsx.clsx(
74
+ withBaseName("label"),
75
+ withBaseName(`label-${labelPlacement}`)
76
+ ),
77
+ "aria-hidden": true,
78
+ children: getVisibleLabel(hoveredValue || selected, max)
79
+ }
80
+ );
81
+ return /* @__PURE__ */ jsxRuntime.jsxs(
82
+ "div",
83
+ {
84
+ ref,
85
+ className: clsx.clsx(
86
+ withBaseName(),
87
+ withBaseName(`label${core.capitalize(labelPlacement)}`),
88
+ className
89
+ ),
90
+ ...restProps,
91
+ children: [
92
+ isTopLeft && displayLabel,
93
+ /* @__PURE__ */ jsxRuntime.jsx(
94
+ "div",
95
+ {
96
+ role: "radiogroup",
97
+ className: withBaseName("container"),
98
+ ref: radioGroupRef,
99
+ "aria-readonly": readOnly || void 0,
100
+ "aria-label": ariaLabel,
101
+ "aria-labelledby": clsx.clsx(formFieldLabelledBy, ariaLabelledBy) || void 0,
102
+ "aria-describedby": clsx.clsx(formFieldDescribedBy, ariaDescribedBy) || void 0,
103
+ onMouseLeave: () => setHoveredValue(0),
104
+ children: Array.from({ length: max }, (_, index) => {
105
+ const itemValue = index + 1;
106
+ const isHovered = hoveredValue > 0 && itemValue <= hoveredValue;
107
+ const isSelected = hoveredValue === 0 && itemValue <= selected;
108
+ const isUnselecting = hoveredValue > 0 && itemValue > hoveredValue && itemValue <= selected;
109
+ return /* @__PURE__ */ jsxRuntime.jsx(
110
+ RatingItem.RatingItem,
111
+ {
112
+ currentRating: selected,
113
+ isHovered,
114
+ isSelected,
115
+ isUnselecting,
116
+ onMouseEnter: handleMouseEnter,
117
+ onChange: handleChange,
118
+ value: itemValue,
119
+ readOnly,
120
+ disabled,
121
+ name,
122
+ "aria-label": getLabel == null ? void 0 : getLabel(itemValue)
123
+ },
124
+ itemValue
125
+ );
126
+ })
127
+ }
128
+ ),
129
+ !isTopLeft && displayLabel
130
+ ]
131
+ }
132
+ );
133
+ });
134
+
135
+ exports.Rating = Rating;
136
+ //# sourceMappingURL=Rating.js.map