@aortl/admin-react 0.16.1 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/dist/AdminRoot.d.ts.map +1 -1
  3. package/dist/Alert.d.ts +6 -1
  4. package/dist/Alert.d.ts.map +1 -1
  5. package/dist/Avatar.d.ts +21 -0
  6. package/dist/Avatar.d.ts.map +1 -0
  7. package/dist/Badge.d.ts +8 -2
  8. package/dist/Badge.d.ts.map +1 -1
  9. package/dist/BarChart.d.ts +4 -14
  10. package/dist/BarChart.d.ts.map +1 -1
  11. package/dist/BrandTile.d.ts +16 -3
  12. package/dist/BrandTile.d.ts.map +1 -1
  13. package/dist/Breadcrumbs.d.ts +0 -1
  14. package/dist/Breadcrumbs.d.ts.map +1 -1
  15. package/dist/Button.d.ts +4 -6
  16. package/dist/Button.d.ts.map +1 -1
  17. package/dist/ButtonGroup.d.ts +2 -5
  18. package/dist/ButtonGroup.d.ts.map +1 -1
  19. package/dist/Card.d.ts +9 -2
  20. package/dist/Card.d.ts.map +1 -1
  21. package/dist/ChartLegend.d.ts +2 -5
  22. package/dist/ChartLegend.d.ts.map +1 -1
  23. package/dist/CodeBlock.d.ts +2 -4
  24. package/dist/CodeBlock.d.ts.map +1 -1
  25. package/dist/Container.d.ts +3 -4
  26. package/dist/Container.d.ts.map +1 -1
  27. package/dist/Dialog.d.ts +3 -14
  28. package/dist/Dialog.d.ts.map +1 -1
  29. package/dist/Donut.d.ts +4 -6
  30. package/dist/Donut.d.ts.map +1 -1
  31. package/dist/Field.d.ts +3 -19
  32. package/dist/Field.d.ts.map +1 -1
  33. package/dist/Indicator.d.ts +2 -3
  34. package/dist/Indicator.d.ts.map +1 -1
  35. package/dist/Input.d.ts +6 -1
  36. package/dist/Input.d.ts.map +1 -1
  37. package/dist/Kbd.d.ts +3 -15
  38. package/dist/Kbd.d.ts.map +1 -1
  39. package/dist/Link.d.ts +5 -13
  40. package/dist/Link.d.ts.map +1 -1
  41. package/dist/Menu.d.ts +1 -5
  42. package/dist/Menu.d.ts.map +1 -1
  43. package/dist/Pagination.d.ts +2 -9
  44. package/dist/Pagination.d.ts.map +1 -1
  45. package/dist/PropertyList.d.ts +3 -7
  46. package/dist/PropertyList.d.ts.map +1 -1
  47. package/dist/Prose.d.ts +3 -12
  48. package/dist/Prose.d.ts.map +1 -1
  49. package/dist/Select.d.ts.map +1 -1
  50. package/dist/Separator.d.ts +11 -0
  51. package/dist/Separator.d.ts.map +1 -0
  52. package/dist/Sidebar.d.ts +0 -2
  53. package/dist/Sidebar.d.ts.map +1 -1
  54. package/dist/Spinner.d.ts.map +1 -1
  55. package/dist/StackedBar.d.ts +2 -9
  56. package/dist/StackedBar.d.ts.map +1 -1
  57. package/dist/StatCard.d.ts +3 -6
  58. package/dist/StatCard.d.ts.map +1 -1
  59. package/dist/Table.d.ts +5 -12
  60. package/dist/Table.d.ts.map +1 -1
  61. package/dist/Textarea.d.ts +5 -9
  62. package/dist/Textarea.d.ts.map +1 -1
  63. package/dist/Tooltip.d.ts +0 -1
  64. package/dist/Tooltip.d.ts.map +1 -1
  65. package/dist/admin.scoped.css +345 -11
  66. package/dist/chart-internal.d.ts +4 -16
  67. package/dist/chart-internal.d.ts.map +1 -1
  68. package/dist/cn.d.ts +5 -8
  69. package/dist/cn.d.ts.map +1 -1
  70. package/dist/hotkey-parse.d.ts +7 -21
  71. package/dist/hotkey-parse.d.ts.map +1 -1
  72. package/dist/hotkey-registry.d.ts +2 -14
  73. package/dist/hotkey-registry.d.ts.map +1 -1
  74. package/dist/icon.d.ts +5 -17
  75. package/dist/icon.d.ts.map +1 -1
  76. package/dist/index.cjs +185 -188
  77. package/dist/index.cjs.map +1 -1
  78. package/dist/index.d.ts +5 -3
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.mjs +183 -189
  81. package/dist/index.mjs.map +1 -1
  82. package/dist/portal-context.d.ts +5 -8
  83. package/dist/portal-context.d.ts.map +1 -1
  84. package/dist/useHotkey.d.ts +5 -20
  85. package/dist/useHotkey.d.ts.map +1 -1
  86. package/package.json +4 -3
@@ -190,6 +190,10 @@
190
190
  syntax: "*";
191
191
  inherits: false;
192
192
  }
193
+ @property --tw-tracking {
194
+ syntax: "*";
195
+ inherits: false;
196
+ }
193
197
  @property --tw-translate-x {
194
198
  syntax: "*";
195
199
  inherits: false;
@@ -205,10 +209,6 @@
205
209
  inherits: false;
206
210
  initial-value: 0;
207
211
  }
208
- @property --tw-tracking {
209
- syntax: "*";
210
- inherits: false;
211
- }
212
212
  @scope (._ao-admin-root) {
213
213
  :scope :where(
214
214
  h1, h2, h3, h4, h5, h6,
@@ -268,10 +268,10 @@
268
268
  --tw-border-style: solid;
269
269
  --tw-outline-style: solid;
270
270
  --tw-duration: initial;
271
+ --tw-tracking: initial;
271
272
  --tw-translate-x: 0;
272
273
  --tw-translate-y: 0;
273
274
  --tw-translate-z: 0;
274
- --tw-tracking: initial;
275
275
  }
276
276
  }
277
277
  :scope, :scope:host, :scope :host {
@@ -296,6 +296,7 @@
296
296
  --font-weight-medium: 500;
297
297
  --font-weight-semibold: 600;
298
298
  --font-weight-bold: 700;
299
+ --tracking-tight: -0.025em;
299
300
  --tracking-wide: 0.025em;
300
301
  --leading-tight: 1.25;
301
302
  --leading-snug: 1.375;
@@ -791,11 +792,21 @@
791
792
  row-gap: 0.25rem;
792
793
  align-items: center;
793
794
  }
795
+ :scope._ao-alert:has(> ._ao-alert-action), :scope ._ao-alert:has(> ._ao-alert-action) {
796
+ display: grid;
797
+ grid-template-columns: minmax(0, 1fr) auto;
798
+ column-gap: 0.5rem;
799
+ row-gap: 0.25rem;
800
+ align-items: center;
801
+ }
802
+ :scope._ao-alert:has(> :is(i, svg):first-child):has(> ._ao-alert-action), :scope ._ao-alert:has(> :is(i, svg):first-child):has(> ._ao-alert-action) {
803
+ grid-template-columns: auto minmax(0, 1fr) auto;
804
+ }
794
805
  :scope._ao-alert > :is(i, svg):first-child, :scope ._ao-alert > :is(i, svg):first-child {
795
806
  font-size: 1rem;
796
807
  line-height: 1.25;
797
808
  }
798
- :scope._ao-alert:has(> :is(i, svg):first-child):has(> ._ao-alert-title), :scope ._ao-alert:has(> :is(i, svg):first-child):has(> ._ao-alert-title) {
809
+ :scope._ao-alert:has(> ._ao-alert-title):is(:has(> :is(i, svg):first-child), :has(> ._ao-alert-action)), :scope ._ao-alert:has(> ._ao-alert-title):is(:has(> :is(i, svg):first-child), :has(> ._ao-alert-action)) {
799
810
  grid-template-rows: auto auto;
800
811
  align-items: start;
801
812
  }
@@ -803,9 +814,20 @@
803
814
  grid-row: 1 / -1;
804
815
  }
805
816
  :scope._ao-alert > :is(._ao-alert-title, ._ao-alert-description), :scope ._ao-alert > :is(._ao-alert-title, ._ao-alert-description) {
806
- grid-column: 2;
807
817
  min-width: 0;
808
818
  }
819
+ :scope._ao-alert:has(> :is(i, svg):first-child) > :is(._ao-alert-title, ._ao-alert-description), :scope ._ao-alert:has(> :is(i, svg):first-child) > :is(._ao-alert-title, ._ao-alert-description) {
820
+ grid-column: 2;
821
+ }
822
+ :scope._ao-alert > ._ao-alert-action, :scope ._ao-alert > ._ao-alert-action {
823
+ --tw-font-weight: var(--font-weight-medium);
824
+ font-weight: var(--font-weight-medium);
825
+ white-space: nowrap;
826
+ grid-column: -2;
827
+ grid-row: 1 / -1;
828
+ justify-self: end;
829
+ align-self: center;
830
+ }
809
831
  :scope._ao-alert-info, :scope ._ao-alert-info {
810
832
  border-color: var(--color-info);
811
833
  background-color: var(--color-info);
@@ -833,6 +855,22 @@
833
855
  :scope._ao-alert-description, :scope ._ao-alert-description {
834
856
  opacity: 0.85;
835
857
  }
858
+ :scope._ao-alert ._ao-link, :scope ._ao-alert ._ao-link {
859
+ color: currentcolor;
860
+ &:hover {
861
+ @media (hover: hover) {
862
+ color: currentcolor;
863
+ }
864
+ }
865
+ &:hover {
866
+ @media (hover: hover) {
867
+ opacity: 85%;
868
+ }
869
+ }
870
+ &:focus-visible {
871
+ outline-color: currentcolor;
872
+ }
873
+ }
836
874
  :scope._ao-app-shell, :scope ._ao-app-shell {
837
875
  --app-shell-sidebar-w: 240px;
838
876
  --app-shell-sidebar-w-collapsed: 56px;
@@ -947,6 +985,74 @@
947
985
  background-color: var(--color-primary);
948
986
  color: var(--color-primary-content);
949
987
  }
988
+ :scope._ao-badge-soft._ao-badge-info, :scope ._ao-badge-soft._ao-badge-info {
989
+ border-color: var(--color-info-muted);
990
+ background-color: var(--color-info-muted);
991
+ color: var(--color-info);
992
+ }
993
+ :scope._ao-badge-soft._ao-badge-success, :scope ._ao-badge-soft._ao-badge-success {
994
+ border-color: var(--color-success-muted);
995
+ background-color: var(--color-success-muted);
996
+ color: var(--color-success);
997
+ }
998
+ :scope._ao-badge-soft._ao-badge-warning, :scope ._ao-badge-soft._ao-badge-warning {
999
+ border-color: var(--color-warning-muted);
1000
+ background-color: var(--color-warning-muted);
1001
+ color: var(--color-text);
1002
+ }
1003
+ :scope._ao-badge-soft._ao-badge-danger, :scope ._ao-badge-soft._ao-badge-danger {
1004
+ border-color: var(--color-danger-muted);
1005
+ background-color: var(--color-danger-muted);
1006
+ color: var(--color-danger);
1007
+ }
1008
+ :scope._ao-badge-soft._ao-badge-primary, :scope ._ao-badge-soft._ao-badge-primary {
1009
+ border-color: var(--color-primary-muted);
1010
+ background-color: var(--color-primary-muted);
1011
+ color: var(--color-text);
1012
+ }
1013
+ :scope._ao-badge-remove, :scope ._ao-badge-remove {
1014
+ margin-right: calc(var(--spacing) * -1);
1015
+ display: inline-flex;
1016
+ width: calc(var(--spacing) * 3.5);
1017
+ height: calc(var(--spacing) * 3.5);
1018
+ flex-shrink: 0;
1019
+ cursor: pointer;
1020
+ align-items: center;
1021
+ justify-content: center;
1022
+ border-radius: calc(infinity * 1px);
1023
+ color: inherit;
1024
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
1025
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1026
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1027
+ --tw-duration: 150ms;
1028
+ transition-duration: 150ms;
1029
+ &:focus-visible {
1030
+ outline-style: var(--tw-outline-style);
1031
+ outline-width: 2px;
1032
+ }
1033
+ &:focus-visible {
1034
+ outline-offset: 1px;
1035
+ }
1036
+ &:focus-visible {
1037
+ outline-color: var(--color-focus);
1038
+ }
1039
+ }
1040
+ :scope._ao-badge-remove:hover, :scope ._ao-badge-remove:hover {
1041
+ background-color: currentColor;
1042
+ @supports (color: color-mix(in lab, red, red)) {
1043
+ background-color: color-mix(in oklab, currentColor 15%, transparent);
1044
+ }
1045
+ }
1046
+ :scope._ao-badge-sm ._ao-badge-remove, :scope ._ao-badge-sm ._ao-badge-remove {
1047
+ margin-right: calc(var(--spacing) * -0.5);
1048
+ width: calc(var(--spacing) * 3);
1049
+ height: calc(var(--spacing) * 3);
1050
+ }
1051
+ :scope._ao-badge-lg ._ao-badge-remove, :scope ._ao-badge-lg ._ao-badge-remove {
1052
+ margin-right: calc(var(--spacing) * -1.5);
1053
+ width: calc(var(--spacing) * 4.5);
1054
+ height: calc(var(--spacing) * 4.5);
1055
+ }
950
1056
  :scope._ao-badge-sm, :scope ._ao-badge-sm {
951
1057
  height: calc(var(--spacing) * 4);
952
1058
  gap: calc(var(--spacing) * 0.5);
@@ -978,6 +1084,104 @@
978
1084
  -webkit-user-select: none;
979
1085
  user-select: none;
980
1086
  }
1087
+ :scope._ao-brand-tile > :is(i, svg), :scope ._ao-brand-tile > :is(i, svg) {
1088
+ font-size: 14px;
1089
+ }
1090
+ :scope._ao-brand-tile-lg, :scope ._ao-brand-tile-lg {
1091
+ width: calc(var(--spacing) * 10);
1092
+ height: calc(var(--spacing) * 10);
1093
+ border-radius: var(--radius-md);
1094
+ font-size: var(--text-sm);
1095
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1096
+ }
1097
+ :scope._ao-brand-tile-lg > :is(i, svg), :scope ._ao-brand-tile-lg > :is(i, svg) {
1098
+ font-size: 20px;
1099
+ }
1100
+ :scope._ao-brand-tile-soft, :scope ._ao-brand-tile-soft {
1101
+ background-color: var(--color-system-accent-muted);
1102
+ color: var(--color-system-accent);
1103
+ }
1104
+ :scope._ao-brand-tile-info, :scope ._ao-brand-tile-info {
1105
+ background-color: var(--color-info-muted);
1106
+ color: var(--color-info);
1107
+ }
1108
+ :scope._ao-brand-tile-success, :scope ._ao-brand-tile-success {
1109
+ background-color: var(--color-success-muted);
1110
+ color: var(--color-success);
1111
+ }
1112
+ :scope._ao-brand-tile-danger, :scope ._ao-brand-tile-danger {
1113
+ background-color: var(--color-danger-muted);
1114
+ color: var(--color-danger);
1115
+ }
1116
+ :scope._ao-brand-tile:has(> img), :scope ._ao-brand-tile:has(> img) {
1117
+ border-style: var(--tw-border-style);
1118
+ border-width: 1px;
1119
+ border-color: var(--color-border);
1120
+ background-color: var(--color-surface);
1121
+ padding: calc(var(--spacing) * 0.5);
1122
+ }
1123
+ :scope._ao-brand-tile > img, :scope ._ao-brand-tile > img {
1124
+ width: 100%;
1125
+ height: 100%;
1126
+ border-radius: inherit;
1127
+ object-fit: contain;
1128
+ }
1129
+ :scope._ao-avatar, :scope ._ao-avatar {
1130
+ position: relative;
1131
+ display: inline-flex;
1132
+ width: calc(var(--spacing) * 8);
1133
+ height: calc(var(--spacing) * 8);
1134
+ flex-shrink: 0;
1135
+ align-items: center;
1136
+ justify-content: center;
1137
+ overflow: hidden;
1138
+ border-radius: calc(infinity * 1px);
1139
+ background-color: var(--color-surface-strong);
1140
+ font-size: var(--text-xs);
1141
+ line-height: var(--tw-leading, var(--text-xs--line-height));
1142
+ --tw-leading: 1;
1143
+ line-height: 1;
1144
+ --tw-font-weight: var(--font-weight-medium);
1145
+ font-weight: var(--font-weight-medium);
1146
+ --tw-tracking: var(--tracking-tight);
1147
+ letter-spacing: var(--tracking-tight);
1148
+ color: var(--color-text-muted);
1149
+ -webkit-user-select: none;
1150
+ user-select: none;
1151
+ }
1152
+ :scope._ao-avatar > img, :scope ._ao-avatar > img {
1153
+ position: absolute;
1154
+ inset: calc(var(--spacing) * 0);
1155
+ width: 100%;
1156
+ height: 100%;
1157
+ object-fit: cover;
1158
+ }
1159
+ :scope._ao-avatar-square, :scope ._ao-avatar-square {
1160
+ border-radius: var(--radius-md);
1161
+ }
1162
+ :scope._ao-avatar-sm, :scope ._ao-avatar-sm {
1163
+ width: calc(var(--spacing) * 6);
1164
+ height: calc(var(--spacing) * 6);
1165
+ font-size: 0.625rem;
1166
+ }
1167
+ :scope._ao-avatar-lg, :scope ._ao-avatar-lg {
1168
+ width: calc(var(--spacing) * 10);
1169
+ height: calc(var(--spacing) * 10);
1170
+ font-size: var(--text-sm);
1171
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1172
+ }
1173
+ :scope._ao-avatar-group, :scope ._ao-avatar-group {
1174
+ display: inline-flex;
1175
+ align-items: center;
1176
+ }
1177
+ :scope._ao-avatar-group > ._ao-avatar, :scope ._ao-avatar-group > ._ao-avatar {
1178
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1179
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1180
+ --tw-ring-color: var(--color-surface);
1181
+ }
1182
+ :scope._ao-avatar-group > ._ao-avatar + ._ao-avatar, :scope ._ao-avatar-group > ._ao-avatar + ._ao-avatar {
1183
+ margin-inline-start: calc(var(--spacing) * -2);
1184
+ }
981
1185
  :scope._ao-kbd, :scope ._ao-kbd {
982
1186
  display: inline-flex;
983
1187
  height: 1.4em;
@@ -1037,6 +1241,18 @@
1037
1241
  :scope._ao-indicator:has(> ._ao-card), :scope ._ao-indicator:has(> ._ao-card) {
1038
1242
  --indicator-offset: 6px;
1039
1243
  }
1244
+ :scope._ao-indicator:has(> ._ao-avatar), :scope ._ao-indicator:has(> ._ao-avatar) {
1245
+ --indicator-offset: 5px;
1246
+ }
1247
+ :scope._ao-indicator:has(> ._ao-avatar-sm), :scope ._ao-indicator:has(> ._ao-avatar-sm) {
1248
+ --indicator-offset: 3px;
1249
+ }
1250
+ :scope._ao-indicator:has(> ._ao-avatar-lg), :scope ._ao-indicator:has(> ._ao-avatar-lg) {
1251
+ --indicator-offset: 6px;
1252
+ }
1253
+ :scope._ao-indicator:has(> ._ao-avatar-square), :scope ._ao-indicator:has(> ._ao-avatar-square) {
1254
+ --indicator-offset: 2px;
1255
+ }
1040
1256
  :scope._ao-indicator-item, :scope ._ao-indicator-item {
1041
1257
  position: absolute;
1042
1258
  z-index: 1;
@@ -1459,6 +1675,22 @@
1459
1675
  :scope._ao-property-list-copy[data-copied], :scope ._ao-property-list-copy[data-copied] {
1460
1676
  color: var(--color-success);
1461
1677
  }
1678
+ :scope._ao-separator, :scope ._ao-separator {
1679
+ margin: calc(var(--spacing) * 0);
1680
+ display: block;
1681
+ height: 1px;
1682
+ width: 100%;
1683
+ flex-shrink: 0;
1684
+ border-style: var(--tw-border-style);
1685
+ border-width: 0px;
1686
+ background-color: var(--color-border);
1687
+ }
1688
+ :scope._ao-separator-vertical, :scope ._ao-separator-vertical {
1689
+ height: auto;
1690
+ width: 1px;
1691
+ align-self: stretch;
1692
+ min-height: 1lh;
1693
+ }
1462
1694
  :scope._ao-btn, :scope ._ao-btn {
1463
1695
  display: inline-flex;
1464
1696
  cursor: pointer;
@@ -1883,6 +2115,51 @@
1883
2115
  white-space: nowrap;
1884
2116
  color: var(--color-text-muted);
1885
2117
  }
2118
+ :scope._ao-input-icon, :scope ._ao-input-icon {
2119
+ position: relative;
2120
+ display: inline-flex;
2121
+ width: 100%;
2122
+ align-items: center;
2123
+ font-size: var(--text-sm);
2124
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2125
+ color: var(--color-text-muted);
2126
+ --input-icon-inset: calc(var(--spacing) * 3);
2127
+ --input-icon-pad: calc(var(--spacing) * 9);
2128
+ }
2129
+ :scope._ao-input-icon:has(> ._ao-input-sm), :scope ._ao-input-icon:has(> ._ao-input-sm) {
2130
+ font-size: var(--text-xs);
2131
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2132
+ --input-icon-inset: calc(var(--spacing) * 2.5);
2133
+ --input-icon-pad: calc(var(--spacing) * 8);
2134
+ }
2135
+ :scope._ao-input-icon:has(> ._ao-input-lg), :scope ._ao-input-icon:has(> ._ao-input-lg) {
2136
+ font-size: var(--text-base);
2137
+ line-height: var(--tw-leading, var(--text-base--line-height));
2138
+ --input-icon-inset: calc(var(--spacing) * 4);
2139
+ --input-icon-pad: calc(var(--spacing) * 10);
2140
+ }
2141
+ :scope._ao-input-icon > :where(i, svg), :scope ._ao-input-icon > :where(i, svg) {
2142
+ pointer-events: none;
2143
+ position: absolute;
2144
+ top: calc(1 / 2 * 100%);
2145
+ --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
2146
+ translate: var(--tw-translate-x) var(--tw-translate-y);
2147
+ }
2148
+ :scope._ao-input-icon > :where(i, svg):first-child, :scope ._ao-input-icon > :where(i, svg):first-child {
2149
+ left: var(--input-icon-inset);
2150
+ }
2151
+ :scope._ao-input-icon > ._ao-input ~ :where(i, svg), :scope ._ao-input-icon > ._ao-input ~ :where(i, svg) {
2152
+ right: var(--input-icon-inset);
2153
+ }
2154
+ :scope._ao-input-icon:has(> :where(i, svg):first-child) > ._ao-input, :scope ._ao-input-icon:has(> :where(i, svg):first-child) > ._ao-input {
2155
+ padding-left: var(--input-icon-pad);
2156
+ }
2157
+ :scope._ao-input-icon:has(> ._ao-input ~ :where(i, svg)) > ._ao-input, :scope ._ao-input-icon:has(> ._ao-input ~ :where(i, svg)) > ._ao-input {
2158
+ padding-right: var(--input-icon-pad);
2159
+ }
2160
+ :scope._ao-input-icon:has(> ._ao-input:disabled) > :where(i, svg), :scope ._ao-input-icon:has(> ._ao-input:disabled) > :where(i, svg) {
2161
+ opacity: 50%;
2162
+ }
1886
2163
  :scope._ao-textarea, :scope ._ao-textarea {
1887
2164
  display: block;
1888
2165
  min-height: calc(var(--spacing) * 20);
@@ -2621,6 +2898,55 @@
2621
2898
  :scope._ao-card-danger ._ao-card-title, :scope ._ao-card-danger ._ao-card-title {
2622
2899
  color: var(--color-danger);
2623
2900
  }
2901
+ :scope._ao-card-media, :scope ._ao-card-media {
2902
+ display: block;
2903
+ width: 100%;
2904
+ flex-shrink: 0;
2905
+ overflow: hidden;
2906
+ }
2907
+ :scope._ao-card-media:first-child, :scope ._ao-card-media:first-child {
2908
+ border-top-left-radius: inherit;
2909
+ border-top-right-radius: inherit;
2910
+ }
2911
+ :scope._ao-card-media:last-child, :scope ._ao-card-media:last-child {
2912
+ border-bottom-left-radius: inherit;
2913
+ border-bottom-right-radius: inherit;
2914
+ }
2915
+ :scope._ao-card-media > :is(img, video), :scope ._ao-card-media > :is(img, video) {
2916
+ display: block;
2917
+ height: 100%;
2918
+ width: 100%;
2919
+ object-fit: cover;
2920
+ }
2921
+ :scope._ao-card-scroll > ._ao-card-header, :scope ._ao-card-scroll > ._ao-card-header {
2922
+ flex-shrink: 0;
2923
+ border-bottom-style: var(--tw-border-style);
2924
+ border-bottom-width: 1px;
2925
+ border-color: var(--color-border);
2926
+ padding-inline: calc(var(--spacing) * 5);
2927
+ padding-block: calc(var(--spacing) * 3);
2928
+ }
2929
+ :scope._ao-card-scroll > ._ao-card-body, :scope ._ao-card-scroll > ._ao-card-body {
2930
+ min-height: calc(var(--spacing) * 0);
2931
+ flex: 1;
2932
+ overflow-y: auto;
2933
+ }
2934
+ :scope._ao-card-scroll > ._ao-card-body:last-child, :scope ._ao-card-scroll > ._ao-card-body:last-child {
2935
+ border-bottom-left-radius: inherit;
2936
+ border-bottom-right-radius: inherit;
2937
+ }
2938
+ :scope._ao-card-scroll > ._ao-card-actions, :scope ._ao-card-scroll > ._ao-card-actions {
2939
+ flex-shrink: 0;
2940
+ border-top-style: var(--tw-border-style);
2941
+ border-top-width: 1px;
2942
+ border-color: var(--color-border);
2943
+ padding-inline: calc(var(--spacing) * 5);
2944
+ padding-block: calc(var(--spacing) * 3);
2945
+ }
2946
+ :scope._ao-card-compact._ao-card-scroll > :is(._ao-card-header, ._ao-card-actions), :scope ._ao-card-compact._ao-card-scroll > :is(._ao-card-header, ._ao-card-actions) {
2947
+ padding-inline: calc(var(--spacing) * 3);
2948
+ padding-block: calc(var(--spacing) * 2);
2949
+ }
2624
2950
  :scope._ao-stat-card, :scope ._ao-stat-card {
2625
2951
  gap: calc(var(--spacing) * 1);
2626
2952
  padding: calc(var(--spacing) * 4);
@@ -3984,6 +4310,15 @@
3984
4310
  white-space: nowrap;
3985
4311
  color: var(--color-text-muted);
3986
4312
  }
4313
+ :scope._ao-table :where(tfoot :is(td, th)), :scope ._ao-table :where(tfoot :is(td, th)) {
4314
+ --tw-font-weight: var(--font-weight-semibold);
4315
+ font-weight: var(--font-weight-semibold);
4316
+ }
4317
+ :scope._ao-table :where(tfoot tr:first-child :is(td, th)), :scope ._ao-table :where(tfoot tr:first-child :is(td, th)) {
4318
+ border-top-style: var(--tw-border-style);
4319
+ border-top-width: 2px;
4320
+ border-top-color: var(--color-border-strong);
4321
+ }
3987
4322
  :scope._ao-table :where(td), :scope ._ao-table :where(td), :scope._ao-table-cell, :scope ._ao-table-cell {
3988
4323
  overflow-wrap: break-word;
3989
4324
  }
@@ -4592,6 +4927,9 @@
4592
4927
  max-width: 96rem;
4593
4928
  }
4594
4929
  }
4930
+ :scope._ao-my-4, :scope ._ao-my-4 {
4931
+ margin-block: calc(var(--spacing) * 4);
4932
+ }
4595
4933
  :scope._ao-block, :scope ._ao-block {
4596
4934
  display: block;
4597
4935
  }
@@ -4639,8 +4977,4 @@
4639
4977
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
4640
4978
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
4641
4979
  }
4642
- :scope._ao-select-all, :scope ._ao-select-all {
4643
- -webkit-user-select: all;
4644
- user-select: all;
4645
- }
4646
4980
  }
@@ -1,5 +1,4 @@
1
1
  import { CSSProperties } from 'react';
2
- /** A single data point. Only `value` is required. */
3
2
  export interface ChartDatum {
4
3
  /** Category name. When present, renders a label (and feeds the aria-label). */
5
4
  label?: string;
@@ -11,27 +10,16 @@ export interface ChartDatum {
11
10
  export type ChartSize = "sm" | "md" | "lg";
12
11
  export type ChartType = "bar" | "stack" | "donut" | "pie";
13
12
  /**
14
- * Multi-series palette references EXISTING Flexoki palette tokens, NOT a new
15
- * token layer. Cycled by index (`SERIES[i % len]`); a datum's own `color`
16
- * overrides. Vanilla authors copy the same sequence (it's documented), so both
17
- * bundles render identical colours. Single-series charts ignore this entirely
18
- * and follow `currentColor`.
13
+ * Multi-series palette of existing Flexoki tokens, not a new token layer. The
14
+ * documented vanilla sequence copies this exactly both bundles must match.
19
15
  */
20
16
  export declare const SERIES: readonly ["var(--color-blue-500)", "var(--color-orange-400)", "var(--color-green-500)", "var(--color-purple-400)", "var(--color-cyan-500)", "var(--color-magenta-400)", "var(--color-yellow-500)", "var(--color-red-400)"];
21
- /** Resolve a segment's colour: explicit `datum.color` wins, else cycle SERIES. */
22
17
  export declare function seriesColor(datum: ChartDatum, index: number): string;
23
18
  /** Largest value, floored at 1 so the bar calc never divides by zero. */
24
19
  export declare function computeMax(data: ChartDatum[], explicit?: number): number;
25
- /**
26
- * Build the cumulative `conic-gradient` stop string for a donut/pie:
27
- * `<color> <from>deg <to>deg, …`. Degrees accumulate across segments. A
28
- * non-positive total yields a single neutral fill so the ring isn't blank.
29
- */
20
+ /** Cumulative `conic-gradient` stops. A non-positive total yields a neutral fill so the ring isn't blank. */
30
21
  export declare function buildDonutSegments(data: ChartDatum[]): string;
31
- /**
32
- * Auto-generated summary for the chart root's `aria-label`. Callers that pass
33
- * their own `aria-label` skip this. Example: "Bar chart. Mon: 80, Tue: 52."
34
- */
22
+ /** Chart-root `aria-label` summary, e.g. "Bar chart. Mon: 80, Tue: 52." */
35
23
  export declare function buildAriaLabel(type: ChartType, data: ChartDatum[]): string;
36
24
  /** Native `title` text for a bar/segment/legend row. */
37
25
  export declare function datumTitle(datum: ChartDatum): string;
@@ -1 +1 @@
1
- {"version":3,"file":"chart-internal.d.ts","sourceRoot":"","sources":["../src/chart-internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,qDAAqD;AACrD,MAAM,WAAW,UAAU;IACzB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,4NAST,CAAC;AAEX,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAa7D;AASD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAG1E;AAED,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACrC,QAAQ,CAAC,EAAE,aAAa,GACvB,aAAa,CAEf"}
1
+ {"version":3,"file":"chart-internal.d.ts","sourceRoot":"","sources":["../src/chart-internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,MAAM,4NAST,CAAC;AAEX,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,6GAA6G;AAC7G,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAa7D;AASD,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAG1E;AAED,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACrC,QAAQ,CAAC,EAAE,aAAa,GACvB,aAAa,CAEf"}
package/dist/cn.d.ts CHANGED
@@ -1,14 +1,11 @@
1
1
  import { ClassValue } from 'clsx';
2
2
  /**
3
- * className merger that preserves Base UI's render-prop className form.
3
+ * className merger that preserves Base UI's render-prop className form
4
+ * a function `className` is deferred until Base UI invokes it with state.
4
5
  *
5
- * `base` carries admin's own classes (e.g. `["btn", "btn-primary"]`) and is
6
- * always prefixed with `_ao-`. `className` is the consumer-supplied prop and
7
- * passes through verbatim — it lives in the caller's namespace.
8
- *
9
- * Base UI components accept `className: string | ((state) => string | undefined)`.
10
- * The function form has to be deferred until Base UI invokes it with the
11
- * component state.
6
+ * `base` carries admin's own classes and is always prefixed with `_ao-`.
7
+ * `className` is the consumer-supplied prop and passes through verbatim —
8
+ * it lives in the caller's namespace.
12
9
  */
13
10
  export declare function cn(base: ClassValue, className: string | undefined): string;
14
11
  export declare function cn<TState>(base: ClassValue, className: (state: TState) => string | undefined): (state: TState) => string;
package/dist/cn.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../src/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAuB7C;;;;;;;;;;GAUG;AACH,wBAAgB,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAC5E,wBAAgB,EAAE,CAAC,MAAM,EACvB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC/C,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAC7B,wBAAgB,EAAE,CAAC,MAAM,EACvB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,GACtE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../src/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAsB7C;;;;;;;GAOG;AACH,wBAAgB,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAC5E,wBAAgB,EAAE,CAAC,MAAM,EACvB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC/C,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAC7B,wBAAgB,EAAE,CAAC,MAAM,EACvB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,GACtE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC"}
@@ -1,16 +1,9 @@
1
1
  /**
2
- * Pure helpers for the hotkey system. Chord syntax: `<mod>+<mod>+…+<key>`
3
- *
4
- * Examples: `mod+s`, `?`, `escape`, `mod+shift+k`, `arrowup`.
5
- *
6
- * Modifiers are case-insensitive. `mod` resolves to the platform's primary
7
- * command modifier — ⌘ (`meta`) on Apple platforms, `Ctrl` elsewhere — so
8
- * `mod+s` fires on the OS-native gesture (Cmd+S on macOS, Ctrl+S otherwise)
9
- * and the `<Kbd>` chip follows suit. The key is whatever
10
- * `KeyboardEvent.key` produces, lowercased. A shifted printable symbol already
11
- * encodes Shift in the character it produces, so bind `"?"` (not `"shift+?"`)
12
- * to catch `shift+/`; `shift` stays explicit for letters and named keys, so
13
- * `shift+a` and `shift+tab` remain distinct chords.
2
+ * Pure helpers for the hotkey system. Chord syntax: `<mod>+…+<key>`, e.g.
3
+ * `mod+s`, `?`, `mod+shift+k`. `mod` resolves to the platform's primary
4
+ * command modifier (⌘ on Apple, Ctrl elsewhere). The key is lowercased
5
+ * `KeyboardEvent.key`. Bind shifted printable symbols bare (`"?"`, not
6
+ * `"shift+?"`); `shift` stays explicit for letters and named keys.
14
7
  */
15
8
  export type Modifier = "ctrl" | "shift" | "alt" | "meta";
16
9
  export interface ParsedChord {
@@ -21,17 +14,10 @@ export declare function parseChord(input: string): ParsedChord;
21
14
  export declare function parseKeys(keys: string | readonly string[]): ParsedChord[];
22
15
  /** Canonical wire form used as a map key in the registry. */
23
16
  export declare function canonicalize(chord: ParsedChord): string;
24
- /**
25
- * Normalize a keyboard event to its canonical chord string. Returns `null`
26
- * if the event is a bare modifier press (`Shift` by itself, etc.) so callers
27
- * can short-circuit before a map lookup.
28
- */
17
+ /** Canonical chord string for a keyboard event; `null` for a bare modifier press. */
29
18
  export declare function normalizeEvent(e: KeyboardEvent): string | null;
30
19
  /** Visual chips for a chord — one entry per modifier and the final key. */
31
20
  export declare function formatChord(chord: ParsedChord): string[];
32
- /**
33
- * Serialize one or more chords to the `aria-keyshortcuts` format
34
- * (space-separated alternatives, modifiers as `Control`/`Shift`/etc.).
35
- */
21
+ /** Serialize chords to `aria-keyshortcuts` format (space-separated alternatives). */
36
22
  export declare function toAriaKeyShortcuts(chords: readonly ParsedChord[]): string;
37
23
  //# sourceMappingURL=hotkey-parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hotkey-parse.d.ts","sourceRoot":"","sources":["../src/hotkey-parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAsCD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA2BrD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,WAAW,EAAE,CAGzE;AAED,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAOvD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAgB9D;AA4BD,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,CAcxD;AAkBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAEzE"}
1
+ {"version":3,"file":"hotkey-parse.d.ts","sourceRoot":"","sources":["../src/hotkey-parse.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAkCD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA2BrD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,WAAW,EAAE,CAGzE;AAED,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAOvD;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAa9D;AA0BD,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,CAcxD;AAkBD,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAEzE"}
@@ -1,25 +1,13 @@
1
1
  import { RefObject } from 'react';
2
2
  /**
3
- * Module-level keyboard shortcut registry. One window keydown listener,
3
+ * Module-level keyboard shortcut registry: one window keydown listener,
4
4
  * attached on first registration and detached when the registry empties.
5
- *
6
- * On keydown:
7
- * 1. Ignore OS autorepeat (`e.repeat`) so a held chord fires once, not per tick.
8
- * 2. Normalize the event to a canonical chord string.
9
- * 3. Look up the bucket. Skip if empty.
10
- * 4. Apply input suppression — bare-key chords are skipped while focus is
11
- * in an editable element, except for `escape`.
12
- * 5. `preventDefault()`, then invoke every surviving handler (bag semantics).
13
5
  */
14
6
  export type HotkeyHandler = (e: KeyboardEvent) => void;
15
7
  export interface HotkeyEntry {
16
8
  handlerRef: RefObject<HotkeyHandler>;
17
9
  }
18
- /**
19
- * Register a hotkey entry under each of its canonical chord strings.
20
- * Returns an unregister function that removes the entry from every bucket
21
- * and detaches the listener if the registry is empty.
22
- */
10
+ /** Returns an unregister function. */
23
11
  export declare function register(canonicalChords: readonly string[], entry: HotkeyEntry): () => void;
24
12
  /** Test-only: empty the registry and detach the listener. */
25
13
  export declare function __resetRegistry(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"hotkey-registry.d.ts","sourceRoot":"","sources":["../src/hotkey-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;CACtC;AA6CD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,IAAI,CAmB3F;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,IAAI,IAAI,CAGtC"}
1
+ {"version":3,"file":"hotkey-registry.d.ts","sourceRoot":"","sources":["../src/hotkey-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC;;;GAGG;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;CACtC;AA0CD,sCAAsC;AACtC,wBAAgB,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,IAAI,CAmB3F;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,IAAI,IAAI,CAGtC"}
package/dist/icon.d.ts CHANGED
@@ -1,28 +1,16 @@
1
1
  import { ComponentType, ReactElement, ReactNode } from 'react';
2
- /**
3
- * Props every icon component is expected to accept. Matches `@tabler/icons-react`
4
- * (size + standard SVG attributes), but loose enough to accept other libraries.
5
- */
2
+ /** Props an icon component must accept — matches `@tabler/icons-react`, loose enough for other libraries. */
6
3
  export interface IconRenderProps {
7
4
  size?: number | string;
8
5
  "aria-hidden"?: boolean | "true" | "false";
9
6
  }
10
7
  export type IconComponent = ComponentType<IconRenderProps>;
11
- /**
12
- * The value a component prop named `icon` will accept. Either:
13
- * - a component reference (`icon={IconHome}`) — rendered with `size="1em" aria-hidden`,
14
- * - or an already-instantiated React element (`icon={<IconHome size={20} />}`) — rendered as-is.
15
- */
8
+ /** Component reference (rendered with `size="1em" aria-hidden`) or pre-instantiated element (as-is). */
16
9
  export type IconProp = IconComponent | ReactElement | null | undefined;
17
10
  /**
18
- * Render an `IconProp` to a React node, defaulting to `size="1em" aria-hidden`
19
- * when given a component reference. The `"1em"` default makes SVG icons inherit
20
- * the host's `font-size`, matching how the Tabler webfont (`<i class="ti …">`)
21
- * renders in the vanilla bundle — so both previews end up the same size.
22
- *
23
- * Anything that is not `null`/`undefined` and not already a React element is
24
- * treated as a component type — `createElement` accepts function components,
25
- * `forwardRef`s (e.g. `@tabler/icons-react`), `memo`, etc.
11
+ * Render an `IconProp`, defaulting component references to `size="1em"
12
+ * aria-hidden`. `"1em"` makes SVG icons inherit the host `font-size`, matching
13
+ * the Tabler webfont in the vanilla bundle.
26
14
  */
27
15
  export declare function renderIcon(icon: IconProp, size?: number | string): ReactNode;
28
16
  //# sourceMappingURL=icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../src/icon.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;CAC5C;AAED,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAE,MAAM,GAAG,MAAc,GAAG,SAAS,CAInF"}
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../src/icon.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,6GAA6G;AAC7G,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;CAC5C;AAED,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;AAE3D,wGAAwG;AACxG,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;AAEvE;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAE,MAAM,GAAG,MAAc,GAAG,SAAS,CAInF"}