@revikornmann/muka-ui 0.20.0 → 0.22.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.
- package/dist/cjs/components/ChatMessage/ChatMessage.css +3 -5
- package/dist/cjs/components/DataTable/DataTable.css +5 -0
- package/dist/cjs/components/DocumentViewer/DocumentToolbar.js +1 -1
- package/dist/cjs/components/DocumentViewer/DocumentToolbar.js.map +1 -1
- package/dist/cjs/components/Icon/Icon.js +17 -7
- package/dist/cjs/components/Icon/Icon.js.map +1 -1
- package/dist/cjs/components/Icon/iconRegistry.js +140 -116
- package/dist/cjs/components/Icon/iconRegistry.js.map +1 -1
- package/dist/cjs/components/Icon/index.js +4 -1
- package/dist/cjs/components/Icon/index.js.map +1 -1
- package/dist/cjs/components/index.js +5 -3
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/esm/components/ChatMessage/ChatMessage.css +3 -5
- package/dist/esm/components/DataTable/DataTable.css +5 -0
- package/dist/esm/components/DocumentViewer/DocumentToolbar.js +1 -1
- package/dist/esm/components/DocumentViewer/DocumentToolbar.js.map +1 -1
- package/dist/esm/components/Icon/Icon.js +14 -7
- package/dist/esm/components/Icon/Icon.js.map +1 -1
- package/dist/esm/components/Icon/iconRegistry.js +138 -83
- package/dist/esm/components/Icon/iconRegistry.js.map +1 -1
- package/dist/esm/components/Icon/index.js +1 -1
- package/dist/esm/components/Icon/index.js.map +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/index.js.map +1 -1
- package/dist/styles/components/ChatMessage.css +3 -5
- package/dist/styles/components/DataTable.css +5 -0
- package/dist/styles/index.css +39 -37
- package/dist/styles/muka-dark.css +39 -37
- package/dist/styles/muka-light.css +39 -37
- package/dist/styles/tokens-bouwplan-dark.css +1 -2
- package/dist/styles/tokens-bouwplan-light.css +1 -2
- package/dist/styles/tokens-fscl-dark.css +1 -2
- package/dist/styles/tokens-fscl-light.css +1 -2
- package/dist/styles/tokens-grip-dark.css +1 -2
- package/dist/styles/tokens-grip-light.css +1 -2
- package/dist/styles/tokens-muka-dark.css +1 -2
- package/dist/styles/tokens-muka-light.css +1 -2
- package/dist/styles/tokens-wireframe-dark.css +1 -2
- package/dist/styles/tokens-wireframe-light.css +1 -2
- package/dist/styles/wireframe-dark.css +39 -37
- package/dist/styles/wireframe-light.css +39 -37
- package/dist/types/components/Icon/Icon.d.ts +20 -7
- package/dist/types/components/Icon/Icon.d.ts.map +1 -1
- package/dist/types/components/Icon/iconRegistry.d.ts +109 -14
- package/dist/types/components/Icon/iconRegistry.d.ts.map +1 -1
- package/dist/types/components/Icon/index.d.ts +1 -1
- package/dist/types/components/Icon/index.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +1 -1
- package/dist/types/components/index.d.ts.map +1 -1
- package/package.json +2 -1
- package/skills/figma-to-code/SKILL.md +17 -2
- package/tokens/t4-components/chatbubble.json +2 -7
|
@@ -1694,8 +1694,7 @@ body {
|
|
|
1694
1694
|
--card-border-pressed: 0.125rem solid #3e63dd;
|
|
1695
1695
|
--card-border-selected: 0.125rem solid #3e63dd;
|
|
1696
1696
|
--chat-column-max-width: 768px;
|
|
1697
|
-
--chatbubble-max-width:
|
|
1698
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1697
|
+
--chatbubble-max-width: 600px;
|
|
1699
1698
|
--chatbubble-radius: 0.75rem;
|
|
1700
1699
|
--chatbubble-padding-block: 0.75rem;
|
|
1701
1700
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -7770,36 +7769,6 @@ body {
|
|
|
7770
7769
|
}
|
|
7771
7770
|
|
|
7772
7771
|
|
|
7773
|
-
/* NumberInput */
|
|
7774
|
-
/* NumberInput — reuses Input field styles (../Input/Input.css). */
|
|
7775
|
-
/* Only the prefix/suffix affixes are NumberInput-specific. */
|
|
7776
|
-
|
|
7777
|
-
.muka-numberinput__addon {
|
|
7778
|
-
display: inline-flex;
|
|
7779
|
-
align-items: center;
|
|
7780
|
-
flex: none;
|
|
7781
|
-
color: var(--color-text-subtle-default);
|
|
7782
|
-
font-family: var(--text-input-md-fontFamily);
|
|
7783
|
-
font-size: var(--text-input-md-fontSize);
|
|
7784
|
-
line-height: var(--text-input-md-lineHeight);
|
|
7785
|
-
user-select: none;
|
|
7786
|
-
pointer-events: none;
|
|
7787
|
-
white-space: nowrap;
|
|
7788
|
-
}
|
|
7789
|
-
|
|
7790
|
-
/* Hide the native number spinners — affixes/step API replace them. */
|
|
7791
|
-
.muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
|
|
7792
|
-
.muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
|
|
7793
|
-
-webkit-appearance: none;
|
|
7794
|
-
margin: 0;
|
|
7795
|
-
}
|
|
7796
|
-
|
|
7797
|
-
.muka-numberinput__field .muka-input__native {
|
|
7798
|
-
-moz-appearance: textfield;
|
|
7799
|
-
appearance: textfield;
|
|
7800
|
-
}
|
|
7801
|
-
|
|
7802
|
-
|
|
7803
7772
|
/* Pagination */
|
|
7804
7773
|
/* Pagination Component Styles */
|
|
7805
7774
|
|
|
@@ -7902,6 +7871,36 @@ body {
|
|
|
7902
7871
|
}
|
|
7903
7872
|
|
|
7904
7873
|
|
|
7874
|
+
/* NumberInput */
|
|
7875
|
+
/* NumberInput — reuses Input field styles (../Input/Input.css). */
|
|
7876
|
+
/* Only the prefix/suffix affixes are NumberInput-specific. */
|
|
7877
|
+
|
|
7878
|
+
.muka-numberinput__addon {
|
|
7879
|
+
display: inline-flex;
|
|
7880
|
+
align-items: center;
|
|
7881
|
+
flex: none;
|
|
7882
|
+
color: var(--color-text-subtle-default);
|
|
7883
|
+
font-family: var(--text-input-md-fontFamily);
|
|
7884
|
+
font-size: var(--text-input-md-fontSize);
|
|
7885
|
+
line-height: var(--text-input-md-lineHeight);
|
|
7886
|
+
user-select: none;
|
|
7887
|
+
pointer-events: none;
|
|
7888
|
+
white-space: nowrap;
|
|
7889
|
+
}
|
|
7890
|
+
|
|
7891
|
+
/* Hide the native number spinners — affixes/step API replace them. */
|
|
7892
|
+
.muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
|
|
7893
|
+
.muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
|
|
7894
|
+
-webkit-appearance: none;
|
|
7895
|
+
margin: 0;
|
|
7896
|
+
}
|
|
7897
|
+
|
|
7898
|
+
.muka-numberinput__field .muka-input__native {
|
|
7899
|
+
-moz-appearance: textfield;
|
|
7900
|
+
appearance: textfield;
|
|
7901
|
+
}
|
|
7902
|
+
|
|
7903
|
+
|
|
7905
7904
|
/* NavigationTransition */
|
|
7906
7905
|
/* NavigationTransition Component Styles */
|
|
7907
7906
|
|
|
@@ -10797,6 +10796,11 @@ li.muka-listitem {
|
|
|
10797
10796
|
transition: background-color 0.15s ease;
|
|
10798
10797
|
}
|
|
10799
10798
|
|
|
10799
|
+
/* Last body row: no bottom border (matches Table; avoids a double line at the table edge). */
|
|
10800
|
+
.muka-data-table__body .muka-data-table__row:last-child {
|
|
10801
|
+
border-bottom: none;
|
|
10802
|
+
}
|
|
10803
|
+
|
|
10800
10804
|
.muka-data-table__row:not(.muka-data-table__row--empty):not(.muka-data-table__row--selected):hover {
|
|
10801
10805
|
background-color: var(--datatable-row-hover-background);
|
|
10802
10806
|
}
|
|
@@ -12483,12 +12487,10 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
12483
12487
|
*/
|
|
12484
12488
|
width: fit-content;
|
|
12485
12489
|
/*
|
|
12486
|
-
*
|
|
12487
|
-
*
|
|
12488
|
-
* column runs full-bleed. Without that gap a long `own` bubble spans the
|
|
12489
|
-
* column and reads no differently from a `peer` one.
|
|
12490
|
+
* Ceiling from design (Figma 5355:44091). Below it, wrapping text fills the
|
|
12491
|
+
* row; above it the fixed cap leaves room for own/peer alignment.
|
|
12490
12492
|
*/
|
|
12491
|
-
max-width:
|
|
12493
|
+
max-width: var(--chatbubble-max-width);
|
|
12492
12494
|
position: relative;
|
|
12493
12495
|
display: flex;
|
|
12494
12496
|
flex-direction: column;
|
|
@@ -1536,8 +1536,7 @@
|
|
|
1536
1536
|
--card-border-pressed: 0.125rem solid #f76b15;
|
|
1537
1537
|
--card-border-selected: 0.125rem solid #f76b15;
|
|
1538
1538
|
--chat-column-max-width: 768px;
|
|
1539
|
-
--chatbubble-max-width:
|
|
1540
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1539
|
+
--chatbubble-max-width: 600px;
|
|
1541
1540
|
--chatbubble-radius: 0.75rem;
|
|
1542
1541
|
--chatbubble-padding-block: 0.75rem;
|
|
1543
1542
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -1536,8 +1536,7 @@
|
|
|
1536
1536
|
--card-border-pressed: 0.125rem solid #f76808;
|
|
1537
1537
|
--card-border-selected: 0.125rem solid #f76808;
|
|
1538
1538
|
--chat-column-max-width: 768px;
|
|
1539
|
-
--chatbubble-max-width:
|
|
1540
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1539
|
+
--chatbubble-max-width: 600px;
|
|
1541
1540
|
--chatbubble-radius: 0.75rem;
|
|
1542
1541
|
--chatbubble-padding-block: 0.75rem;
|
|
1543
1542
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -1536,8 +1536,7 @@
|
|
|
1536
1536
|
--card-border-pressed: 0.125rem solid #ffca16;
|
|
1537
1537
|
--card-border-selected: 0.125rem solid #ffca16;
|
|
1538
1538
|
--chat-column-max-width: 768px;
|
|
1539
|
-
--chatbubble-max-width:
|
|
1540
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1539
|
+
--chatbubble-max-width: 600px;
|
|
1541
1540
|
--chatbubble-radius: 0.75rem;
|
|
1542
1541
|
--chatbubble-padding-block: 0.75rem;
|
|
1543
1542
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -1536,8 +1536,7 @@
|
|
|
1536
1536
|
--card-border-pressed: 0.125rem solid #ab6400;
|
|
1537
1537
|
--card-border-selected: 0.125rem solid #ab6400;
|
|
1538
1538
|
--chat-column-max-width: 768px;
|
|
1539
|
-
--chatbubble-max-width:
|
|
1540
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1539
|
+
--chatbubble-max-width: 600px;
|
|
1541
1540
|
--chatbubble-radius: 0.75rem;
|
|
1542
1541
|
--chatbubble-padding-block: 0.75rem;
|
|
1543
1542
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -1536,8 +1536,7 @@
|
|
|
1536
1536
|
--card-border-pressed: 0.125rem solid #0bd8b6;
|
|
1537
1537
|
--card-border-selected: 0.125rem solid #0bd8b6;
|
|
1538
1538
|
--chat-column-max-width: 768px;
|
|
1539
|
-
--chatbubble-max-width:
|
|
1540
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1539
|
+
--chatbubble-max-width: 600px;
|
|
1541
1540
|
--chatbubble-radius: 0.75rem;
|
|
1542
1541
|
--chatbubble-padding-block: 0.75rem;
|
|
1543
1542
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -1536,8 +1536,7 @@
|
|
|
1536
1536
|
--card-border-pressed: 0.125rem solid #12a594;
|
|
1537
1537
|
--card-border-selected: 0.125rem solid #12a594;
|
|
1538
1538
|
--chat-column-max-width: 768px;
|
|
1539
|
-
--chatbubble-max-width:
|
|
1540
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1539
|
+
--chatbubble-max-width: 600px;
|
|
1541
1540
|
--chatbubble-radius: 0.75rem;
|
|
1542
1541
|
--chatbubble-padding-block: 0.75rem;
|
|
1543
1542
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -1536,8 +1536,7 @@
|
|
|
1536
1536
|
--card-border-pressed: 0.125rem solid #9eb1ff;
|
|
1537
1537
|
--card-border-selected: 0.125rem solid #9eb1ff;
|
|
1538
1538
|
--chat-column-max-width: 768px;
|
|
1539
|
-
--chatbubble-max-width:
|
|
1540
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1539
|
+
--chatbubble-max-width: 600px;
|
|
1541
1540
|
--chatbubble-radius: 0.75rem;
|
|
1542
1541
|
--chatbubble-padding-block: 0.75rem;
|
|
1543
1542
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -1536,8 +1536,7 @@
|
|
|
1536
1536
|
--card-border-pressed: 0.125rem solid #3e63dd;
|
|
1537
1537
|
--card-border-selected: 0.125rem solid #3e63dd;
|
|
1538
1538
|
--chat-column-max-width: 768px;
|
|
1539
|
-
--chatbubble-max-width:
|
|
1540
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1539
|
+
--chatbubble-max-width: 600px;
|
|
1541
1540
|
--chatbubble-radius: 0.75rem;
|
|
1542
1541
|
--chatbubble-padding-block: 0.75rem;
|
|
1543
1542
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -1536,8 +1536,7 @@
|
|
|
1536
1536
|
--card-border-pressed: 0.125rem solid #b4b4b4;
|
|
1537
1537
|
--card-border-selected: 0.125rem solid #b4b4b4;
|
|
1538
1538
|
--chat-column-max-width: 768px;
|
|
1539
|
-
--chatbubble-max-width:
|
|
1540
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1539
|
+
--chatbubble-max-width: 600px;
|
|
1541
1540
|
--chatbubble-radius: 0px;
|
|
1542
1541
|
--chatbubble-padding-block: 0.75rem;
|
|
1543
1542
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -1536,8 +1536,7 @@
|
|
|
1536
1536
|
--card-border-pressed: 0.125rem solid #113264;
|
|
1537
1537
|
--card-border-selected: 0.125rem solid #113264;
|
|
1538
1538
|
--chat-column-max-width: 768px;
|
|
1539
|
-
--chatbubble-max-width:
|
|
1540
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1539
|
+
--chatbubble-max-width: 600px;
|
|
1541
1540
|
--chatbubble-radius: 0px;
|
|
1542
1541
|
--chatbubble-padding-block: 0.75rem;
|
|
1543
1542
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -1662,8 +1662,7 @@ body {
|
|
|
1662
1662
|
--card-border-pressed: 0.125rem solid #b4b4b4;
|
|
1663
1663
|
--card-border-selected: 0.125rem solid #b4b4b4;
|
|
1664
1664
|
--chat-column-max-width: 768px;
|
|
1665
|
-
--chatbubble-max-width:
|
|
1666
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1665
|
+
--chatbubble-max-width: 600px;
|
|
1667
1666
|
--chatbubble-radius: 0px;
|
|
1668
1667
|
--chatbubble-padding-block: 0.75rem;
|
|
1669
1668
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -7738,36 +7737,6 @@ body {
|
|
|
7738
7737
|
}
|
|
7739
7738
|
|
|
7740
7739
|
|
|
7741
|
-
/* NumberInput */
|
|
7742
|
-
/* NumberInput — reuses Input field styles (../Input/Input.css). */
|
|
7743
|
-
/* Only the prefix/suffix affixes are NumberInput-specific. */
|
|
7744
|
-
|
|
7745
|
-
.muka-numberinput__addon {
|
|
7746
|
-
display: inline-flex;
|
|
7747
|
-
align-items: center;
|
|
7748
|
-
flex: none;
|
|
7749
|
-
color: var(--color-text-subtle-default);
|
|
7750
|
-
font-family: var(--text-input-md-fontFamily);
|
|
7751
|
-
font-size: var(--text-input-md-fontSize);
|
|
7752
|
-
line-height: var(--text-input-md-lineHeight);
|
|
7753
|
-
user-select: none;
|
|
7754
|
-
pointer-events: none;
|
|
7755
|
-
white-space: nowrap;
|
|
7756
|
-
}
|
|
7757
|
-
|
|
7758
|
-
/* Hide the native number spinners — affixes/step API replace them. */
|
|
7759
|
-
.muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
|
|
7760
|
-
.muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
|
|
7761
|
-
-webkit-appearance: none;
|
|
7762
|
-
margin: 0;
|
|
7763
|
-
}
|
|
7764
|
-
|
|
7765
|
-
.muka-numberinput__field .muka-input__native {
|
|
7766
|
-
-moz-appearance: textfield;
|
|
7767
|
-
appearance: textfield;
|
|
7768
|
-
}
|
|
7769
|
-
|
|
7770
|
-
|
|
7771
7740
|
/* Pagination */
|
|
7772
7741
|
/* Pagination Component Styles */
|
|
7773
7742
|
|
|
@@ -7870,6 +7839,36 @@ body {
|
|
|
7870
7839
|
}
|
|
7871
7840
|
|
|
7872
7841
|
|
|
7842
|
+
/* NumberInput */
|
|
7843
|
+
/* NumberInput — reuses Input field styles (../Input/Input.css). */
|
|
7844
|
+
/* Only the prefix/suffix affixes are NumberInput-specific. */
|
|
7845
|
+
|
|
7846
|
+
.muka-numberinput__addon {
|
|
7847
|
+
display: inline-flex;
|
|
7848
|
+
align-items: center;
|
|
7849
|
+
flex: none;
|
|
7850
|
+
color: var(--color-text-subtle-default);
|
|
7851
|
+
font-family: var(--text-input-md-fontFamily);
|
|
7852
|
+
font-size: var(--text-input-md-fontSize);
|
|
7853
|
+
line-height: var(--text-input-md-lineHeight);
|
|
7854
|
+
user-select: none;
|
|
7855
|
+
pointer-events: none;
|
|
7856
|
+
white-space: nowrap;
|
|
7857
|
+
}
|
|
7858
|
+
|
|
7859
|
+
/* Hide the native number spinners — affixes/step API replace them. */
|
|
7860
|
+
.muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
|
|
7861
|
+
.muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
|
|
7862
|
+
-webkit-appearance: none;
|
|
7863
|
+
margin: 0;
|
|
7864
|
+
}
|
|
7865
|
+
|
|
7866
|
+
.muka-numberinput__field .muka-input__native {
|
|
7867
|
+
-moz-appearance: textfield;
|
|
7868
|
+
appearance: textfield;
|
|
7869
|
+
}
|
|
7870
|
+
|
|
7871
|
+
|
|
7873
7872
|
/* NavigationTransition */
|
|
7874
7873
|
/* NavigationTransition Component Styles */
|
|
7875
7874
|
|
|
@@ -10765,6 +10764,11 @@ li.muka-listitem {
|
|
|
10765
10764
|
transition: background-color 0.15s ease;
|
|
10766
10765
|
}
|
|
10767
10766
|
|
|
10767
|
+
/* Last body row: no bottom border (matches Table; avoids a double line at the table edge). */
|
|
10768
|
+
.muka-data-table__body .muka-data-table__row:last-child {
|
|
10769
|
+
border-bottom: none;
|
|
10770
|
+
}
|
|
10771
|
+
|
|
10768
10772
|
.muka-data-table__row:not(.muka-data-table__row--empty):not(.muka-data-table__row--selected):hover {
|
|
10769
10773
|
background-color: var(--datatable-row-hover-background);
|
|
10770
10774
|
}
|
|
@@ -12451,12 +12455,10 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
12451
12455
|
*/
|
|
12452
12456
|
width: fit-content;
|
|
12453
12457
|
/*
|
|
12454
|
-
*
|
|
12455
|
-
*
|
|
12456
|
-
* column runs full-bleed. Without that gap a long `own` bubble spans the
|
|
12457
|
-
* column and reads no differently from a `peer` one.
|
|
12458
|
+
* Ceiling from design (Figma 5355:44091). Below it, wrapping text fills the
|
|
12459
|
+
* row; above it the fixed cap leaves room for own/peer alignment.
|
|
12458
12460
|
*/
|
|
12459
|
-
max-width:
|
|
12461
|
+
max-width: var(--chatbubble-max-width);
|
|
12460
12462
|
position: relative;
|
|
12461
12463
|
display: flex;
|
|
12462
12464
|
flex-direction: column;
|
|
@@ -1662,8 +1662,7 @@ body {
|
|
|
1662
1662
|
--card-border-pressed: 0.125rem solid #113264;
|
|
1663
1663
|
--card-border-selected: 0.125rem solid #113264;
|
|
1664
1664
|
--chat-column-max-width: 768px;
|
|
1665
|
-
--chatbubble-max-width:
|
|
1666
|
-
--chatbubble-max-width-ratio: 77%;
|
|
1665
|
+
--chatbubble-max-width: 600px;
|
|
1667
1666
|
--chatbubble-radius: 0px;
|
|
1668
1667
|
--chatbubble-padding-block: 0.75rem;
|
|
1669
1668
|
--chatbubble-padding-inline: 1rem;
|
|
@@ -7738,36 +7737,6 @@ body {
|
|
|
7738
7737
|
}
|
|
7739
7738
|
|
|
7740
7739
|
|
|
7741
|
-
/* NumberInput */
|
|
7742
|
-
/* NumberInput — reuses Input field styles (../Input/Input.css). */
|
|
7743
|
-
/* Only the prefix/suffix affixes are NumberInput-specific. */
|
|
7744
|
-
|
|
7745
|
-
.muka-numberinput__addon {
|
|
7746
|
-
display: inline-flex;
|
|
7747
|
-
align-items: center;
|
|
7748
|
-
flex: none;
|
|
7749
|
-
color: var(--color-text-subtle-default);
|
|
7750
|
-
font-family: var(--text-input-md-fontFamily);
|
|
7751
|
-
font-size: var(--text-input-md-fontSize);
|
|
7752
|
-
line-height: var(--text-input-md-lineHeight);
|
|
7753
|
-
user-select: none;
|
|
7754
|
-
pointer-events: none;
|
|
7755
|
-
white-space: nowrap;
|
|
7756
|
-
}
|
|
7757
|
-
|
|
7758
|
-
/* Hide the native number spinners — affixes/step API replace them. */
|
|
7759
|
-
.muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
|
|
7760
|
-
.muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
|
|
7761
|
-
-webkit-appearance: none;
|
|
7762
|
-
margin: 0;
|
|
7763
|
-
}
|
|
7764
|
-
|
|
7765
|
-
.muka-numberinput__field .muka-input__native {
|
|
7766
|
-
-moz-appearance: textfield;
|
|
7767
|
-
appearance: textfield;
|
|
7768
|
-
}
|
|
7769
|
-
|
|
7770
|
-
|
|
7771
7740
|
/* Pagination */
|
|
7772
7741
|
/* Pagination Component Styles */
|
|
7773
7742
|
|
|
@@ -7870,6 +7839,36 @@ body {
|
|
|
7870
7839
|
}
|
|
7871
7840
|
|
|
7872
7841
|
|
|
7842
|
+
/* NumberInput */
|
|
7843
|
+
/* NumberInput — reuses Input field styles (../Input/Input.css). */
|
|
7844
|
+
/* Only the prefix/suffix affixes are NumberInput-specific. */
|
|
7845
|
+
|
|
7846
|
+
.muka-numberinput__addon {
|
|
7847
|
+
display: inline-flex;
|
|
7848
|
+
align-items: center;
|
|
7849
|
+
flex: none;
|
|
7850
|
+
color: var(--color-text-subtle-default);
|
|
7851
|
+
font-family: var(--text-input-md-fontFamily);
|
|
7852
|
+
font-size: var(--text-input-md-fontSize);
|
|
7853
|
+
line-height: var(--text-input-md-lineHeight);
|
|
7854
|
+
user-select: none;
|
|
7855
|
+
pointer-events: none;
|
|
7856
|
+
white-space: nowrap;
|
|
7857
|
+
}
|
|
7858
|
+
|
|
7859
|
+
/* Hide the native number spinners — affixes/step API replace them. */
|
|
7860
|
+
.muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
|
|
7861
|
+
.muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
|
|
7862
|
+
-webkit-appearance: none;
|
|
7863
|
+
margin: 0;
|
|
7864
|
+
}
|
|
7865
|
+
|
|
7866
|
+
.muka-numberinput__field .muka-input__native {
|
|
7867
|
+
-moz-appearance: textfield;
|
|
7868
|
+
appearance: textfield;
|
|
7869
|
+
}
|
|
7870
|
+
|
|
7871
|
+
|
|
7873
7872
|
/* NavigationTransition */
|
|
7874
7873
|
/* NavigationTransition Component Styles */
|
|
7875
7874
|
|
|
@@ -10765,6 +10764,11 @@ li.muka-listitem {
|
|
|
10765
10764
|
transition: background-color 0.15s ease;
|
|
10766
10765
|
}
|
|
10767
10766
|
|
|
10767
|
+
/* Last body row: no bottom border (matches Table; avoids a double line at the table edge). */
|
|
10768
|
+
.muka-data-table__body .muka-data-table__row:last-child {
|
|
10769
|
+
border-bottom: none;
|
|
10770
|
+
}
|
|
10771
|
+
|
|
10768
10772
|
.muka-data-table__row:not(.muka-data-table__row--empty):not(.muka-data-table__row--selected):hover {
|
|
10769
10773
|
background-color: var(--datatable-row-hover-background);
|
|
10770
10774
|
}
|
|
@@ -12451,12 +12455,10 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
12451
12455
|
*/
|
|
12452
12456
|
width: fit-content;
|
|
12453
12457
|
/*
|
|
12454
|
-
*
|
|
12455
|
-
*
|
|
12456
|
-
* column runs full-bleed. Without that gap a long `own` bubble spans the
|
|
12457
|
-
* column and reads no differently from a `peer` one.
|
|
12458
|
+
* Ceiling from design (Figma 5355:44091). Below it, wrapping text fills the
|
|
12459
|
+
* row; above it the fixed cap leaves room for own/peer alignment.
|
|
12458
12460
|
*/
|
|
12459
|
-
max-width:
|
|
12461
|
+
max-width: var(--chatbubble-max-width);
|
|
12460
12462
|
position: relative;
|
|
12461
12463
|
display: flex;
|
|
12462
12464
|
flex-direction: column;
|
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import './Icon.css';
|
|
3
|
-
import { type IconName } from './iconRegistry';
|
|
4
|
-
export type { IconName } from './iconRegistry';
|
|
3
|
+
import { type IconComponent, type IconName } from './iconRegistry';
|
|
4
|
+
export type { IconName, RegisteredIconName, ListedIcon } from './iconRegistry';
|
|
5
|
+
export { registerIcon, listRegisteredIcons, iconRegistry, type IconRegistryEntry, } from './iconRegistry';
|
|
5
6
|
export interface IconProps {
|
|
6
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Curated muka (or `registerIcon`) nickname.
|
|
9
|
+
* Prefer this for Tier 1 / Tier 2 system chrome — see Storybook Icon grids.
|
|
10
|
+
*/
|
|
7
11
|
name?: IconName;
|
|
8
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* Tree-shakeable pass-through: pass a Remix (or custom) component directly.
|
|
14
|
+
* Use for app/Figma glyphs not in the muka registry — no muka release needed.
|
|
15
|
+
* Precedence: `icon` > `name` > `children`.
|
|
16
|
+
*/
|
|
17
|
+
icon?: IconComponent;
|
|
18
|
+
/** Icon style when using `name`. Default line. */
|
|
9
19
|
variant?: 'line' | 'fill';
|
|
10
|
-
/** SVG element or custom content
|
|
20
|
+
/** SVG element or custom content when not using `name` / `icon`. */
|
|
11
21
|
children?: React.ReactNode;
|
|
12
22
|
/** Size variant — uses icon.size tokens */
|
|
13
23
|
size?: 'xs' | 'sm' | 'md' | 'lg';
|
|
@@ -24,8 +34,11 @@ export interface IconProps {
|
|
|
24
34
|
* Icon Component
|
|
25
35
|
*
|
|
26
36
|
* Wrapper that enforces consistent sizing and color inheritance.
|
|
27
|
-
*
|
|
28
|
-
*
|
|
37
|
+
*
|
|
38
|
+
* Three ways to supply a glyph:
|
|
39
|
+
* 1. `name` — curated muka registry (Tier 1 / Tier 2)
|
|
40
|
+
* 2. `icon` — pass a Remix component (`import { RiWifiOffLine } from '@remixicon/react'`)
|
|
41
|
+
* 3. `children` — any custom SVG / node
|
|
29
42
|
*
|
|
30
43
|
* Tokens used:
|
|
31
44
|
* - icon.size.{xs|sm|default|lg}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../components/Icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,YAAY,CAAC;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../components/Icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,QAAQ,EACd,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB;;;;OAIG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IAErB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1B,oEAAoE;IACpE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,2CAA2C;IAC3C,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAEjC,oEAAoE;IACpE,YAAY,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAE1D,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA2CpC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -1,24 +1,119 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
export type IconComponent = React.ComponentType<{
|
|
3
|
+
className?: string;
|
|
4
|
+
}>;
|
|
2
5
|
export type IconRegistryEntry = {
|
|
3
|
-
line:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
line: IconComponent;
|
|
7
|
+
fill: IconComponent;
|
|
8
|
+
/** 1 = required by Muka components; 2 = common consumer chrome */
|
|
9
|
+
tier: 1 | 2;
|
|
10
|
+
/** Present when this key is only an alias of another canonical name */
|
|
11
|
+
aliasOf?: string;
|
|
9
12
|
};
|
|
10
13
|
/**
|
|
11
|
-
*
|
|
12
|
-
* Icons are keyed by kebab-case name (e.g., "arrow-left", "delete-bin-2", "more-2").
|
|
14
|
+
* Curated RemixIcon registry (Tier 1 + Tier 2).
|
|
13
15
|
*
|
|
14
|
-
*
|
|
16
|
+
* - Tier 1: glyphs Muka production components hardcode via `name=`
|
|
17
|
+
* - Tier 2: shared shell chrome most consumer apps need via `name=`
|
|
15
18
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
19
|
+
* App/domain icons: use `<Icon icon={Ri…} />` or `registerIcon` — do not expand
|
|
20
|
+
* this map for one-off Figma glyphs (keeps consumer bundles small).
|
|
18
21
|
*/
|
|
22
|
+
declare const canonicalRegistry: {
|
|
23
|
+
readonly add: IconRegistryEntry;
|
|
24
|
+
readonly alert: IconRegistryEntry;
|
|
25
|
+
readonly 'arrow-down': IconRegistryEntry;
|
|
26
|
+
readonly 'arrow-down-s': IconRegistryEntry;
|
|
27
|
+
readonly 'arrow-drop-up-down': IconRegistryEntry;
|
|
28
|
+
readonly 'arrow-left': IconRegistryEntry;
|
|
29
|
+
readonly 'arrow-left-s': IconRegistryEntry;
|
|
30
|
+
readonly 'arrow-return': IconRegistryEntry;
|
|
31
|
+
readonly 'arrow-right': IconRegistryEntry;
|
|
32
|
+
readonly 'arrow-right-s': IconRegistryEntry;
|
|
33
|
+
readonly 'arrow-up-s': IconRegistryEntry;
|
|
34
|
+
readonly attachment: IconRegistryEntry;
|
|
35
|
+
readonly check: IconRegistryEntry;
|
|
36
|
+
readonly 'checkbox-circle': IconRegistryEntry;
|
|
37
|
+
readonly close: IconRegistryEntry;
|
|
38
|
+
readonly 'delete-bin': IconRegistryEntry;
|
|
39
|
+
readonly download: IconRegistryEntry;
|
|
40
|
+
readonly 'emotion-happy': IconRegistryEntry;
|
|
41
|
+
readonly 'error-warning': IconRegistryEntry;
|
|
42
|
+
readonly file: IconRegistryEntry;
|
|
43
|
+
readonly 'file-copy': IconRegistryEntry;
|
|
44
|
+
readonly 'file-pdf': IconRegistryEntry;
|
|
45
|
+
readonly 'file-text': IconRegistryEntry;
|
|
46
|
+
readonly 'filter-3': IconRegistryEntry;
|
|
47
|
+
readonly fullscreen: IconRegistryEntry;
|
|
48
|
+
readonly image: IconRegistryEntry;
|
|
49
|
+
readonly information: IconRegistryEntry;
|
|
50
|
+
readonly mic: IconRegistryEntry;
|
|
51
|
+
readonly pause: IconRegistryEntry;
|
|
52
|
+
readonly 'pause-circle': IconRegistryEntry;
|
|
53
|
+
readonly pencil: IconRegistryEntry;
|
|
54
|
+
readonly play: IconRegistryEntry;
|
|
55
|
+
readonly printer: IconRegistryEntry;
|
|
56
|
+
readonly restart: IconRegistryEntry;
|
|
57
|
+
readonly search: IconRegistryEntry;
|
|
58
|
+
readonly 'send-plane2': IconRegistryEntry;
|
|
59
|
+
readonly 'sort-asc': IconRegistryEntry;
|
|
60
|
+
readonly 'sort-desc': IconRegistryEntry;
|
|
61
|
+
readonly 'thumb-down': IconRegistryEntry;
|
|
62
|
+
readonly 'thumb-up': IconRegistryEntry;
|
|
63
|
+
readonly 'zoom-in': IconRegistryEntry;
|
|
64
|
+
readonly 'zoom-out': IconRegistryEntry;
|
|
65
|
+
readonly bell: IconRegistryEntry;
|
|
66
|
+
readonly building: IconRegistryEntry;
|
|
67
|
+
readonly 'close-large': IconRegistryEntry;
|
|
68
|
+
readonly contrast: IconRegistryEntry;
|
|
69
|
+
readonly edit: IconRegistryEntry;
|
|
70
|
+
readonly eye: IconRegistryEntry;
|
|
71
|
+
readonly 'eye-off': IconRegistryEntry;
|
|
72
|
+
readonly google: IconRegistryEntry;
|
|
73
|
+
readonly home: IconRegistryEntry;
|
|
74
|
+
readonly 'home-4': IconRegistryEntry;
|
|
75
|
+
readonly lock: IconRegistryEntry;
|
|
76
|
+
readonly mail: IconRegistryEntry;
|
|
77
|
+
readonly moon: IconRegistryEntry;
|
|
78
|
+
readonly 'more-2': IconRegistryEntry;
|
|
79
|
+
readonly settings: IconRegistryEntry;
|
|
80
|
+
readonly 'settings-3': IconRegistryEntry;
|
|
81
|
+
readonly share: IconRegistryEntry;
|
|
82
|
+
readonly translate: IconRegistryEntry;
|
|
83
|
+
readonly 'translate-2': IconRegistryEntry;
|
|
84
|
+
readonly upload: IconRegistryEntry;
|
|
85
|
+
readonly 'upload-2': IconRegistryEntry;
|
|
86
|
+
readonly user: IconRegistryEntry;
|
|
87
|
+
readonly 'wifi-off': IconRegistryEntry;
|
|
88
|
+
};
|
|
89
|
+
export type RegisteredIconName = keyof typeof canonicalRegistry;
|
|
19
90
|
export declare const iconRegistry: Record<string, IconRegistryEntry>;
|
|
91
|
+
/** Open string type so dynamic `name={…}` props stay valid; unknown names soft-fail. */
|
|
20
92
|
export type IconName = string;
|
|
21
|
-
export declare function getIconComponent(name: IconName, variant: 'line' | 'fill'):
|
|
22
|
-
|
|
23
|
-
|
|
93
|
+
export declare function getIconComponent(name: IconName, variant: 'line' | 'fill'): IconComponent;
|
|
94
|
+
/**
|
|
95
|
+
* Register an app-local icon nickname without a muka release.
|
|
96
|
+
* Prefer `<Icon icon={Ri…} />` for one-offs; use this when many call sites
|
|
97
|
+
* need the same string `name=`.
|
|
98
|
+
*/
|
|
99
|
+
export declare function registerIcon(name: string, registryEntry: Omit<IconRegistryEntry, 'tier'> & {
|
|
100
|
+
tier?: 1 | 2;
|
|
101
|
+
}): void;
|
|
102
|
+
export type ListedIcon = {
|
|
103
|
+
name: string;
|
|
104
|
+
tier: 1 | 2;
|
|
105
|
+
aliasOf?: string;
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* List icons for Storybook grids / tooling.
|
|
109
|
+
* By default lists only the muka curated set (not runtime `registerIcon` demos)
|
|
110
|
+
* and omits aliases so designers see one primary kebab name per glyph.
|
|
111
|
+
*/
|
|
112
|
+
export declare function listRegisteredIcons(options?: {
|
|
113
|
+
tier?: 1 | 2;
|
|
114
|
+
includeAliases?: boolean;
|
|
115
|
+
/** Include icons added via registerIcon at runtime (default false). */
|
|
116
|
+
includeRuntime?: boolean;
|
|
117
|
+
}): ListedIcon[];
|
|
118
|
+
export {};
|
|
24
119
|
//# sourceMappingURL=iconRegistry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iconRegistry.d.ts","sourceRoot":"","sources":["../../../../components/Icon/iconRegistry.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"iconRegistry.d.ts","sourceRoot":"","sources":["../../../../components/Icon/iconRegistry.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA8H1B,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAExE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,kEAAkE;IAClE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IACZ,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAcF;;;;;;;;GAQG;AACH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqE+B,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAEhE,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAE1D,CAAC;AAwBF,wFAAwF;AACxF,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GAAG,MAAM,GACvB,aAAa,CAIf;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,GAAG,IAAI,CAOlH;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE;IAC5C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACb,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,UAAU,EAAE,CAoBf"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { Icon, type IconProps, type IconName } from './Icon';
|
|
1
|
+
export { Icon, type IconProps, type IconName, type RegisteredIconName, type ListedIcon, registerIcon, listRegisteredIcons, iconRegistry, type IconRegistryEntry, } from './Icon';
|
|
2
2
|
export { default } from './Icon';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/Icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/Icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -5,7 +5,7 @@ export { Form, type FormProps, useForm, type UseFormOptions, type UseFormReturn,
|
|
|
5
5
|
export { NumberInput, type NumberInputProps } from './NumberInput';
|
|
6
6
|
export { Card, type CardProps } from './Card';
|
|
7
7
|
export { Label, type LabelProps } from './Label';
|
|
8
|
-
export { Icon, type IconProps, type IconName } from './Icon';
|
|
8
|
+
export { Icon, type IconProps, type IconName, type RegisteredIconName, type ListedIcon, registerIcon, listRegisteredIcons, type IconRegistryEntry, } from './Icon';
|
|
9
9
|
export { Chip, type ChipProps } from './Chip';
|
|
10
10
|
export { Divider, type DividerProps } from './Divider';
|
|
11
11
|
export { Select, type SelectProps, type SelectOption } from './Select';
|