@iris-ui-kit/vue 0.2.12 → 0.2.14

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/index.cjs CHANGED
@@ -832,6 +832,253 @@ var IrisIcon = vue.defineComponent({
832
832
  }
833
833
  });
834
834
 
835
+ // src/admin/styles.ts
836
+ var __NAV_MENU_STYLE_ID = "iris-nav-menu-styles";
837
+ var CSS2 = `
838
+ :where(.iris-nav-menu) {
839
+ --iris-nav-indent-step: 16px;
840
+ --iris-nav-item-padding-inline: 10px;
841
+ --iris-nav-item-padding-block: 8px;
842
+ --iris-nav-item-border-radius: var(--iris-radius-md, 6px);
843
+ --iris-nav-item-hover: var(--iris-surface-hover, var(--iris-surface));
844
+ --iris-nav-item-height: 34px;
845
+ display: flex;
846
+ flex-direction: column;
847
+ align-items: stretch;
848
+ gap: 2px;
849
+ width: 100%;
850
+ }
851
+
852
+ :where(.iris-nav-menu--horizontal) {
853
+ flex-direction: row;
854
+ align-items: center;
855
+ width: auto;
856
+ }
857
+
858
+ :where(.iris-nav-menu-group) {
859
+ position: relative;
860
+ }
861
+
862
+ :where(.iris-nav-menu-item) {
863
+ appearance: none;
864
+ box-sizing: border-box;
865
+ display: flex;
866
+ flex: 0 1 auto;
867
+ align-items: center;
868
+ width: 100%;
869
+ min-height: var(--iris-nav-item-height);
870
+ border: none;
871
+ border-radius: var(--iris-nav-item-border-radius);
872
+ background: transparent;
873
+ color: var(--iris-foreground, var(--iris-color-text, var(--iris-foreground)));
874
+ font: inherit;
875
+ font-size: 14px;
876
+ line-height: 1.2;
877
+ font-weight: 400;
878
+ text-align: start;
879
+ cursor: pointer;
880
+ opacity: 1;
881
+ margin: 0;
882
+ gap: 10px;
883
+ padding-block: var(--iris-nav-item-padding-block);
884
+ padding-inline: var(--iris-nav-item-padding-inline);
885
+ text-overflow: ellipsis;
886
+ white-space: nowrap;
887
+ }
888
+
889
+ :where(.iris-nav-menu--horizontal .iris-nav-menu-item) {
890
+ width: auto;
891
+ padding-inline-start: var(--iris-nav-item-padding-inline);
892
+ }
893
+
894
+ :where(.iris-nav-menu-item[data-depth='0']) {
895
+ --iris-nav-item-padding-inline-start: 10px;
896
+ }
897
+
898
+ :where(.iris-nav-menu-item[data-depth='1']) {
899
+ --iris-nav-item-padding-inline-start: calc(12px + var(--iris-nav-indent-step));
900
+ }
901
+
902
+ :where(.iris-nav-menu-item[data-depth='2']) {
903
+ --iris-nav-item-padding-inline-start: calc(12px + var(--iris-nav-indent-step) * 2);
904
+ }
905
+
906
+ :where(.iris-nav-menu-item[data-depth='3']) {
907
+ --iris-nav-item-padding-inline-start: calc(12px + var(--iris-nav-indent-step) * 3);
908
+ }
909
+
910
+ :where(.iris-nav-menu-item[data-depth='4']) {
911
+ --iris-nav-item-padding-inline-start: calc(12px + var(--iris-nav-indent-step) * 4);
912
+ }
913
+
914
+ :where(.iris-nav-menu-item[data-depth='5']) {
915
+ --iris-nav-item-padding-inline-start: calc(12px + var(--iris-nav-indent-step) * 5);
916
+ }
917
+
918
+ :where(.iris-nav-menu-item[data-depth='6']) {
919
+ --iris-nav-item-padding-inline-start: calc(12px + var(--iris-nav-indent-step) * 6);
920
+ }
921
+
922
+ :where(.iris-nav-menu-item[data-depth='7']) {
923
+ --iris-nav-item-padding-inline-start: calc(12px + var(--iris-nav-indent-step) * 7);
924
+ }
925
+
926
+ :where(.iris-nav-menu-item[data-depth='8']) {
927
+ --iris-nav-item-padding-inline-start: calc(12px + var(--iris-nav-indent-step) * 8);
928
+ }
929
+
930
+ :where(.iris-nav-menu-item[data-depth='9']) {
931
+ --iris-nav-item-padding-inline-start: calc(12px + var(--iris-nav-indent-step) * 9);
932
+ }
933
+
934
+ :where(.iris-nav-menu--vertical .iris-nav-menu-item[data-depth]) {
935
+ padding-inline-start: var(--iris-nav-item-padding-inline-start);
936
+ }
937
+
938
+ :where(.iris-nav-menu-item:hover),
939
+ :where(.iris-nav-menu-item.is-hovered):not([disabled], .is-disabled) {
940
+ background: var(--iris-nav-item-hover);
941
+ }
942
+
943
+ :where(.iris-nav-menu-item[data-active='true']) {
944
+ background: var(--iris-primary);
945
+ color: var(--iris-primary-foreground, #fff);
946
+ font-weight: 600;
947
+ }
948
+
949
+ :where(.iris-nav-menu-item[data-active-trail='true']) {
950
+ color: var(--iris-primary);
951
+ font-weight: 600;
952
+ }
953
+
954
+ :where(.iris-nav-menu-item[disabled], .iris-nav-menu-item.is-disabled) {
955
+ cursor: not-allowed;
956
+ opacity: 0.5;
957
+ }
958
+
959
+ :where(.iris-nav-menu-item:focus-visible) {
960
+ outline: 2px solid var(--iris-ring, var(--iris-primary));
961
+ outline-offset: 1px;
962
+ }
963
+
964
+ :where(.iris-nav-menu-label) {
965
+ flex: 0 1 auto;
966
+ min-width: 0;
967
+ overflow: hidden;
968
+ text-overflow: ellipsis;
969
+ }
970
+
971
+ :where(.iris-nav-menu-badge) {
972
+ margin-inline-start: 6px;
973
+ font-size: 11px;
974
+ line-height: 1;
975
+ padding: 2px 6px;
976
+ border-radius: 999px;
977
+ background: var(--iris-danger, #e5484d);
978
+ color: #fff;
979
+ flex: 0 0 auto;
980
+ }
981
+
982
+ :where(.iris-nav-menu-arrow) {
983
+ flex: 0 0 auto;
984
+ opacity: 0.6;
985
+ transform: rotate(0deg);
986
+ transform-origin: center;
987
+ transition: transform 160ms ease;
988
+ margin-inline-start: auto;
989
+ }
990
+
991
+ :where(.iris-nav-menu-arrow[data-reversed='true']) {
992
+ transform: rotate(180deg);
993
+ }
994
+
995
+ :where(.iris-nav-menu-fallback-icon) {
996
+ display: inline-flex;
997
+ width: 20px;
998
+ height: 20px;
999
+ align-items: center;
1000
+ justify-content: center;
1001
+ font-weight: 700;
1002
+ }
1003
+
1004
+ :where(.iris-nav-menu-item.is-disabled) .iris-nav-menu-label {
1005
+ opacity: 0.75;
1006
+ }
1007
+
1008
+ :where(.iris-nav-menu-group--depth-0 > .iris-nav-menu-children) {
1009
+ display: none;
1010
+ }
1011
+
1012
+ :where(.iris-nav-menu-group--depth-1 > .iris-nav-menu-children),
1013
+ :where(.iris-nav-menu-group--depth-2 > .iris-nav-menu-children),
1014
+ :where(.iris-nav-menu-group--depth-3 > .iris-nav-menu-children),
1015
+ :where(.iris-nav-menu-group--depth-4 > .iris-nav-menu-children),
1016
+ :where(.iris-nav-menu-group--depth-5 > .iris-nav-menu-children),
1017
+ :where(.iris-nav-menu-group--depth-6 > .iris-nav-menu-children),
1018
+ :where(.iris-nav-menu-group--depth-7 > .iris-nav-menu-children),
1019
+ :where(.iris-nav-menu-group--depth-8 > .iris-nav-menu-children),
1020
+ :where(.iris-nav-menu-group--depth-9 > .iris-nav-menu-children),
1021
+ :where(.iris-nav-menu-group > .iris-nav-menu-children) {
1022
+ display: none;
1023
+ }
1024
+
1025
+ :where(.iris-nav-menu-group[data-open='true'] > .iris-nav-menu-children) {
1026
+ display: block;
1027
+ }
1028
+
1029
+ :where(.iris-nav-menu--horizontal .iris-nav-menu-group > .iris-nav-menu-children) {
1030
+ position: absolute;
1031
+ min-width: 220px;
1032
+ padding: 6px;
1033
+ border: 1px solid var(--iris-border);
1034
+ border-radius: var(--iris-radius-md, 6px);
1035
+ background: var(--iris-surface);
1036
+ box-shadow: var(--iris-shadow-md);
1037
+ }
1038
+
1039
+ :where(.iris-nav-menu--horizontal .iris-nav-menu-group[data-depth='0'] > .iris-nav-menu-children) {
1040
+ inset-block-start: 100%;
1041
+ inset-inline-start: 0;
1042
+ z-index: 60;
1043
+ }
1044
+
1045
+ :where(.iris-nav-menu--horizontal .iris-nav-menu-group[data-depth]:not([data-depth='0']) > .iris-nav-menu-children) {
1046
+ inset-block-start: 0;
1047
+ inset-inline-start: 100%;
1048
+ z-index: 61;
1049
+ }
1050
+
1051
+ :where(.iris-nav-menu--collapsed .iris-nav-menu-item) {
1052
+ justify-content: center;
1053
+ padding-inline-start: var(--iris-nav-item-padding-inline);
1054
+ }
1055
+
1056
+ :where(.iris-nav-menu-item.is-collapsed) {
1057
+ justify-content: center;
1058
+ padding-inline: var(--iris-nav-item-padding-inline);
1059
+ }
1060
+
1061
+ @media (prefers-reduced-motion: reduce) {
1062
+ :where(.iris-nav-menu-arrow) {
1063
+ transition: none;
1064
+ }
1065
+ }
1066
+ `.trim();
1067
+ var installed2 = false;
1068
+ function installNavMenuStyles() {
1069
+ if (installed2) return;
1070
+ if (typeof document === "undefined") return;
1071
+ if (document.getElementById(__NAV_MENU_STYLE_ID)) {
1072
+ installed2 = true;
1073
+ return;
1074
+ }
1075
+ const style = document.createElement("style");
1076
+ style.id = __NAV_MENU_STYLE_ID;
1077
+ style.textContent = CSS2;
1078
+ document.head.appendChild(style);
1079
+ installed2 = true;
1080
+ }
1081
+
835
1082
  // src/admin/NavMenu.ts
836
1083
  var IrisNavMenu = vue.defineComponent({
837
1084
  name: "IrisNavMenu",
@@ -858,6 +1105,7 @@ var IrisNavMenu = vue.defineComponent({
858
1105
  "update:expandedKeys": (_keys) => true
859
1106
  },
860
1107
  setup(props, { emit, attrs }) {
1108
+ installNavMenuStyles();
861
1109
  const { t } = useI18n();
862
1110
  const tree = vue.computed(() => core.visibleNav(props.items));
863
1111
  const activePath = vue.computed(
@@ -923,49 +1171,25 @@ var IrisNavMenu = vue.defineComponent({
923
1171
  if (hoveredAtDepth) return hoveredAtDepth === key;
924
1172
  return interactionKeyAtDepth(focusedBranches.value, depth) === key;
925
1173
  };
926
- const itemStyle = (opts) => {
927
- const bg = opts.active ? "var(--iris-primary)" : opts.hovered && !opts.disabled ? "var(--iris-surface-hover, var(--iris-surface))" : "transparent";
928
- return {
929
- display: "flex",
930
- alignItems: "center",
931
- gap: "10px",
932
- width: props.orientation === "horizontal" && opts.depth === 0 ? "auto" : "100%",
933
- boxSizing: "border-box",
934
- border: "none",
935
- borderRadius: "var(--iris-radius-md, 6px)",
936
- background: bg,
937
- color: opts.active ? "var(--iris-primary-foreground, #fff)" : opts.trail ? "var(--iris-primary)" : "var(--iris-foreground)",
938
- font: "inherit",
939
- fontSize: "14px",
940
- fontWeight: opts.active || opts.trail ? "600" : "400",
941
- textAlign: "start",
942
- cursor: opts.disabled ? "not-allowed" : "pointer",
943
- opacity: opts.disabled ? "0.5" : "1",
944
- padding: props.collapsed ? "10px" : "8px 10px",
945
- paddingInlineStart: props.collapsed || props.orientation === "horizontal" ? "10px" : `${12 + opts.depth * 16}px`,
946
- justifyContent: props.collapsed ? "center" : "flex-start"
947
- };
1174
+ const itemClass = (opts) => {
1175
+ const depth = Math.min(9, opts.depth);
1176
+ return [
1177
+ "iris-nav-menu-item",
1178
+ `iris-nav-menu-item--depth-${depth}`,
1179
+ `iris-nav-menu-item--${opts.branch ? "branch" : "leaf"}`,
1180
+ opts.active ? "is-active" : void 0,
1181
+ opts.trail ? "is-trail" : void 0,
1182
+ opts.hovered ? "is-hovered" : void 0,
1183
+ opts.open ? "is-open" : void 0,
1184
+ opts.disabled ? "is-disabled" : void 0
1185
+ ].filter(Boolean);
948
1186
  };
949
- const hoverHandlers = (key) => ({
950
- onMouseenter: () => hovered.value = key,
951
- onMouseleave: () => {
952
- if (hovered.value === key) hovered.value = null;
953
- }
954
- });
955
1187
  const iconNode = (node, size = 18) => node.icon ? vue.h(IrisIcon, { name: node.icon, size }) : null;
956
1188
  const badgeNode = (node) => node.badge !== void 0 && node.badge !== "" && !props.collapsed ? vue.h(
957
1189
  "span",
958
1190
  {
959
- "data-iris-nav-badge": "",
960
- style: {
961
- marginInlineStart: "auto",
962
- fontSize: "11px",
963
- lineHeight: "1",
964
- padding: "2px 6px",
965
- borderRadius: "999px",
966
- background: "var(--iris-danger, #e5484d)",
967
- color: "#fff"
968
- }
1191
+ class: "iris-nav-menu-badge",
1192
+ "data-iris-nav-badge": ""
969
1193
  },
970
1194
  String(node.badge)
971
1195
  ) : null;
@@ -977,25 +1201,38 @@ var IrisNavMenu = vue.defineComponent({
977
1201
  {
978
1202
  key: node.key,
979
1203
  type: "button",
1204
+ class: [
1205
+ ...itemClass({
1206
+ depth: 0,
1207
+ active,
1208
+ trail: false,
1209
+ hovered: hovered.value === node.key,
1210
+ open: false,
1211
+ disabled: !!node.disabled,
1212
+ branch
1213
+ }),
1214
+ "is-collapsed"
1215
+ ],
980
1216
  "data-iris-nav-item": "",
981
1217
  "data-key": node.key,
982
1218
  "data-active": active ? "true" : void 0,
983
1219
  "data-branch": branch ? "true" : void 0,
1220
+ "data-hovered": hovered.value === node.key ? "true" : void 0,
984
1221
  disabled: node.disabled,
985
1222
  title: node.title,
986
1223
  "aria-label": branch ? `${node.title} (section)` : node.title,
987
1224
  "aria-current": active && !branch ? "page" : void 0,
988
- style: itemStyle({
989
- depth: 0,
990
- active,
991
- trail: false,
992
- hovered: hovered.value === node.key,
993
- disabled: !!node.disabled
994
- }),
995
- ...hoverHandlers(node.key),
1225
+ onMouseenter: () => {
1226
+ if (!node.disabled) hovered.value = node.key;
1227
+ },
1228
+ onMouseleave: () => {
1229
+ if (hovered.value === node.key) hovered.value = null;
1230
+ },
996
1231
  onClick: () => select(branch ? core.firstLeaf(node) : node)
997
1232
  },
998
- [iconNode(node, 20) ?? vue.h("span", { style: { fontWeight: "700" } }, node.title.charAt(0))]
1233
+ [
1234
+ iconNode(node, 20) ?? vue.h("span", { class: "iris-nav-menu-fallback-icon" }, node.title.charAt(0))
1235
+ ]
999
1236
  );
1000
1237
  });
1001
1238
  const renderItem = (node, depth) => {
@@ -1005,28 +1242,38 @@ var IrisNavMenu = vue.defineComponent({
1005
1242
  const shown = horizontal ? horizontalBranchVisible(node.key, depth) : open;
1006
1243
  const active = node.key === props.activeKey;
1007
1244
  const trail = branch && !active && activePath.value.includes(node.key);
1245
+ const arrowReversed = branch && !node.disabled && (active || trail || shown || hovered.value === node.key);
1008
1246
  const row = vue.h(
1009
1247
  "button",
1010
1248
  {
1011
1249
  type: "button",
1250
+ class: itemClass({
1251
+ depth,
1252
+ active,
1253
+ trail,
1254
+ hovered: hovered.value === node.key,
1255
+ open: branch ? shown : false,
1256
+ disabled: !!node.disabled,
1257
+ branch
1258
+ }),
1012
1259
  "data-iris-nav-item": "",
1013
1260
  "data-key": node.key,
1014
1261
  "data-branch": branch ? "true" : void 0,
1015
1262
  "data-active": active ? "true" : void 0,
1016
1263
  "data-active-trail": trail ? "true" : void 0,
1017
1264
  "data-open": branch && shown ? "true" : void 0,
1265
+ "data-hovered": hovered.value === node.key ? "true" : void 0,
1018
1266
  "data-depth": String(depth),
1267
+ "data-orientation": props.orientation,
1019
1268
  disabled: node.disabled,
1020
1269
  "aria-expanded": branch ? shown ? "true" : "false" : void 0,
1021
1270
  "aria-current": active ? "page" : void 0,
1022
- style: itemStyle({
1023
- depth,
1024
- active,
1025
- trail,
1026
- hovered: hovered.value === node.key,
1027
- disabled: !!node.disabled
1028
- }),
1029
- ...hoverHandlers(node.key),
1271
+ onMouseenter: () => {
1272
+ if (!node.disabled) hovered.value = node.key;
1273
+ },
1274
+ onMouseleave: () => {
1275
+ if (hovered.value === node.key) hovered.value = null;
1276
+ },
1030
1277
  onClick: () => branch ? toggle(node.key) : select(node)
1031
1278
  },
1032
1279
  [
@@ -1034,12 +1281,7 @@ var IrisNavMenu = vue.defineComponent({
1034
1281
  vue.h(
1035
1282
  "span",
1036
1283
  {
1037
- style: {
1038
- flex: branch ? "1" : "0 1 auto",
1039
- overflow: "hidden",
1040
- textOverflow: "ellipsis",
1041
- whiteSpace: "nowrap"
1042
- }
1284
+ class: "iris-nav-menu-label"
1043
1285
  },
1044
1286
  node.title
1045
1287
  ),
@@ -1047,15 +1289,19 @@ var IrisNavMenu = vue.defineComponent({
1047
1289
  branch ? vue.h(IrisIcon, {
1048
1290
  name: horizontal && depth === 0 ? "chevron-down" : "chevron-right",
1049
1291
  size: 16,
1050
- style: { marginInlineStart: badgeNode(node) ? "6px" : "auto", opacity: "0.6" }
1292
+ class: "iris-nav-menu-arrow",
1293
+ "data-reversed": arrowReversed ? "true" : void 0
1051
1294
  }) : null
1052
1295
  ]
1053
1296
  );
1054
- const groupStyle = horizontal && branch ? { position: "relative" } : void 0;
1055
1297
  if (!branch || !horizontal && !open)
1056
1298
  return vue.h(
1057
1299
  "div",
1058
- { key: node.key, "data-iris-nav-group": branch ? "" : void 0, style: groupStyle },
1300
+ {
1301
+ key: node.key,
1302
+ "data-iris-nav-group": branch ? "" : void 0,
1303
+ class: ["iris-nav-menu-group", `iris-nav-menu-group--depth-${Math.min(9, depth)}`]
1304
+ },
1059
1305
  [row]
1060
1306
  );
1061
1307
  return vue.h(
@@ -1064,7 +1310,11 @@ var IrisNavMenu = vue.defineComponent({
1064
1310
  key: node.key,
1065
1311
  "data-iris-nav-group": "",
1066
1312
  "data-open": shown ? "true" : void 0,
1067
- style: groupStyle,
1313
+ "data-depth": String(depth),
1314
+ class: [
1315
+ "iris-nav-menu-group",
1316
+ `iris-nav-menu-group--depth-${Math.min(9, depth)}`
1317
+ ],
1068
1318
  ...horizontal ? {
1069
1319
  onMouseenter: () => setBranchInteraction(hoveredBranches, node.key, true),
1070
1320
  onMouseleave: () => setBranchInteraction(hoveredBranches, node.key, false),
@@ -1083,22 +1333,10 @@ var IrisNavMenu = vue.defineComponent({
1083
1333
  vue.h(
1084
1334
  "div",
1085
1335
  {
1336
+ class: "iris-nav-menu-children",
1086
1337
  "data-iris-nav-children": "",
1087
1338
  role: "group",
1088
- "aria-hidden": horizontal && !shown ? "true" : void 0,
1089
- style: horizontal ? {
1090
- display: shown ? "block" : "none",
1091
- position: "absolute",
1092
- insetBlockStart: depth === 0 ? "100%" : "0",
1093
- insetInlineStart: depth === 0 ? "0" : "100%",
1094
- zIndex: depth === 0 ? "60" : "61",
1095
- minWidth: "220px",
1096
- padding: "6px",
1097
- border: "1px solid var(--iris-border)",
1098
- borderRadius: "var(--iris-radius-md, 6px)",
1099
- background: "var(--iris-surface)",
1100
- boxShadow: "var(--iris-shadow-md)"
1101
- } : void 0
1339
+ "aria-hidden": horizontal && !shown ? "true" : void 0
1102
1340
  },
1103
1341
  (node.children ?? []).map((child) => renderItem(child, depth + 1))
1104
1342
  )
@@ -1152,22 +1390,22 @@ var IrisNavMenu = vue.defineComponent({
1152
1390
  }
1153
1391
  }
1154
1392
  };
1393
+ const menuClass = [
1394
+ "iris-nav-menu",
1395
+ `iris-nav-menu--${props.orientation}`,
1396
+ props.collapsed ? "iris-nav-menu--collapsed" : "iris-nav-menu--expanded"
1397
+ ];
1155
1398
  return () => vue.h(
1156
1399
  "nav",
1157
1400
  {
1158
1401
  ...attrs,
1402
+ class: [...menuClass, attrs.class],
1159
1403
  "data-iris-nav-menu": "",
1160
1404
  "data-collapsed": props.collapsed ? "true" : void 0,
1161
1405
  "data-orientation": props.orientation,
1162
1406
  "aria-label": props.ariaLabel ?? t("admin.nav"),
1163
1407
  onKeydown,
1164
- style: {
1165
- display: "flex",
1166
- flexDirection: props.orientation === "horizontal" ? "row" : "column",
1167
- alignItems: props.orientation === "horizontal" ? "center" : void 0,
1168
- gap: "2px",
1169
- ...attrs.style ?? {}
1170
- }
1408
+ style: attrs.style
1171
1409
  },
1172
1410
  props.collapsed ? renderCollapsed() : tree.value.map((node) => renderItem(node, 0))
1173
1411
  );
@@ -2915,7 +3153,7 @@ var IrisErrorBoundary = vue.defineComponent({
2915
3153
 
2916
3154
  // src/primitives/button/styles.ts
2917
3155
  var STYLE_ID = "iris-button-styles";
2918
- var CSS2 = `
3156
+ var CSS3 = `
2919
3157
  .iris-button {
2920
3158
  cursor: pointer;
2921
3159
  display: inline-flex;
@@ -2968,19 +3206,19 @@ var CSS2 = `
2968
3206
  to { transform: rotate(360deg); }
2969
3207
  }
2970
3208
  `;
2971
- var installed2 = false;
3209
+ var installed3 = false;
2972
3210
  function installButtonStyles() {
2973
- if (installed2) return;
3211
+ if (installed3) return;
2974
3212
  if (typeof document === "undefined") return;
2975
3213
  if (document.getElementById(STYLE_ID)) {
2976
- installed2 = true;
3214
+ installed3 = true;
2977
3215
  return;
2978
3216
  }
2979
3217
  const style = document.createElement("style");
2980
3218
  style.id = STYLE_ID;
2981
- style.textContent = CSS2;
3219
+ style.textContent = CSS3;
2982
3220
  document.head.appendChild(style);
2983
- installed2 = true;
3221
+ installed3 = true;
2984
3222
  }
2985
3223
 
2986
3224
  // src/primitives/button/Button.ts
@@ -6489,7 +6727,7 @@ var IrisAvatar = vue.defineComponent({
6489
6727
 
6490
6728
  // src/primitives/spinner/styles.ts
6491
6729
  var __SPINNER_STYLE_ID = "iris-spinner-styles";
6492
- var CSS3 = `
6730
+ var CSS4 = `
6493
6731
  @keyframes iris-spinner-rotate {
6494
6732
  to { transform: rotate(360deg); }
6495
6733
  }
@@ -6512,22 +6750,22 @@ var CSS3 = `
6512
6750
  }
6513
6751
  }
6514
6752
  `.trim();
6515
- var installed3 = false;
6753
+ var installed4 = false;
6516
6754
  function installSpinnerStyles() {
6517
- if (installed3) return;
6755
+ if (installed4) return;
6518
6756
  if (typeof document === "undefined") return;
6519
6757
  if (document.getElementById(__SPINNER_STYLE_ID)) {
6520
- installed3 = true;
6758
+ installed4 = true;
6521
6759
  return;
6522
6760
  }
6523
6761
  const el = document.createElement("style");
6524
6762
  el.id = __SPINNER_STYLE_ID;
6525
- el.textContent = CSS3;
6763
+ el.textContent = CSS4;
6526
6764
  document.head.appendChild(el);
6527
- installed3 = true;
6765
+ installed4 = true;
6528
6766
  }
6529
6767
  function __resetSpinnerStyles() {
6530
- installed3 = false;
6768
+ installed4 = false;
6531
6769
  if (typeof document !== "undefined") {
6532
6770
  document.getElementById(__SPINNER_STYLE_ID)?.remove();
6533
6771
  }
@@ -6619,7 +6857,7 @@ var IrisSpinner = vue.defineComponent({
6619
6857
 
6620
6858
  // src/primitives/skeleton/styles.ts
6621
6859
  var __SKELETON_STYLE_ID = "iris-skeleton-styles";
6622
- var CSS4 = `
6860
+ var CSS5 = `
6623
6861
  @keyframes iris-skeleton-shimmer {
6624
6862
  0% { background-position: -200% 0; }
6625
6863
  100% { background-position: 200% 0; }
@@ -6659,22 +6897,22 @@ var CSS4 = `
6659
6897
  }
6660
6898
  }
6661
6899
  `.trim();
6662
- var installed4 = false;
6900
+ var installed5 = false;
6663
6901
  function installSkeletonStyles() {
6664
- if (installed4) return;
6902
+ if (installed5) return;
6665
6903
  if (typeof document === "undefined") return;
6666
6904
  if (document.getElementById(__SKELETON_STYLE_ID)) {
6667
- installed4 = true;
6905
+ installed5 = true;
6668
6906
  return;
6669
6907
  }
6670
6908
  const el = document.createElement("style");
6671
6909
  el.id = __SKELETON_STYLE_ID;
6672
- el.textContent = CSS4;
6910
+ el.textContent = CSS5;
6673
6911
  document.head.appendChild(el);
6674
- installed4 = true;
6912
+ installed5 = true;
6675
6913
  }
6676
6914
  function __resetSkeletonStyles() {
6677
- installed4 = false;
6915
+ installed5 = false;
6678
6916
  if (typeof document !== "undefined") {
6679
6917
  document.getElementById(__SKELETON_STYLE_ID)?.remove();
6680
6918
  }
@@ -6726,7 +6964,7 @@ var IrisSkeleton = vue.defineComponent({
6726
6964
 
6727
6965
  // src/primitives/progress/styles.ts
6728
6966
  var __PROGRESS_STYLE_ID = "iris-progress-styles";
6729
- var CSS5 = `
6967
+ var CSS6 = `
6730
6968
  @keyframes iris-progress-indeterminate {
6731
6969
  0% { left: -40%; right: 100%; }
6732
6970
  60% { left: 100%; right: -20%; }
@@ -6759,22 +6997,22 @@ var CSS5 = `
6759
6997
  }
6760
6998
  }
6761
6999
  `.trim();
6762
- var installed5 = false;
7000
+ var installed6 = false;
6763
7001
  function installProgressStyles() {
6764
- if (installed5) return;
7002
+ if (installed6) return;
6765
7003
  if (typeof document === "undefined") return;
6766
7004
  if (document.getElementById(__PROGRESS_STYLE_ID)) {
6767
- installed5 = true;
7005
+ installed6 = true;
6768
7006
  return;
6769
7007
  }
6770
7008
  const el = document.createElement("style");
6771
7009
  el.id = __PROGRESS_STYLE_ID;
6772
- el.textContent = CSS5;
7010
+ el.textContent = CSS6;
6773
7011
  document.head.appendChild(el);
6774
- installed5 = true;
7012
+ installed6 = true;
6775
7013
  }
6776
7014
  function __resetProgressStyles() {
6777
- installed5 = false;
7015
+ installed6 = false;
6778
7016
  if (typeof document !== "undefined") {
6779
7017
  document.getElementById(__PROGRESS_STYLE_ID)?.remove();
6780
7018
  }
@@ -10611,7 +10849,7 @@ var IrisTabs = vue.defineComponent({
10611
10849
 
10612
10850
  // src/primitives/tabs/styles.ts
10613
10851
  var STYLE_ID2 = "iris-tabs-styles";
10614
- var CSS6 = `
10852
+ var CSS7 = `
10615
10853
  :where(.iris-tabs-list) {
10616
10854
  display: flex;
10617
10855
  gap: 2px;
@@ -10663,19 +10901,19 @@ var CSS6 = `
10663
10901
  outline-offset: 2px;
10664
10902
  }
10665
10903
  `.trim();
10666
- var installed6 = false;
10904
+ var installed7 = false;
10667
10905
  function installTabsStyles() {
10668
- if (installed6) return;
10906
+ if (installed7) return;
10669
10907
  if (typeof document === "undefined") return;
10670
10908
  if (document.getElementById(STYLE_ID2)) {
10671
- installed6 = true;
10909
+ installed7 = true;
10672
10910
  return;
10673
10911
  }
10674
10912
  const style = document.createElement("style");
10675
10913
  style.id = STYLE_ID2;
10676
- style.textContent = CSS6;
10914
+ style.textContent = CSS7;
10677
10915
  document.head.appendChild(style);
10678
- installed6 = true;
10916
+ installed7 = true;
10679
10917
  }
10680
10918
 
10681
10919
  // src/primitives/tabs/TabsList.ts