@idds/vue 1.4.15 → 1.4.17

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.es.js CHANGED
@@ -409,12 +409,12 @@ const defaultColorTokens = {
409
409
  "secondary-800": "#164564",
410
410
  "secondary-900": "#0f2d42"
411
411
  };
412
- const _hoisted_1$J = ["id", "aria-expanded", "aria-controls", "disabled"];
413
- const _hoisted_2$D = { class: "ina-accordion__title" };
414
- const _hoisted_3$z = { class: "ina-accordion__toggler" };
412
+ const _hoisted_1$K = ["id", "aria-expanded", "aria-controls", "disabled"];
413
+ const _hoisted_2$E = { class: "ina-accordion__title" };
414
+ const _hoisted_3$A = { class: "ina-accordion__toggler" };
415
415
  const _hoisted_4$u = ["id", "aria-labelledby"];
416
416
  const _hoisted_5$o = { class: "ina-accordion__body" };
417
- const _sfc_main$O = /* @__PURE__ */ defineComponent({
417
+ const _sfc_main$P = /* @__PURE__ */ defineComponent({
418
418
  __name: "Accordion",
419
419
  props: {
420
420
  title: { default: "" },
@@ -524,12 +524,12 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
524
524
  disabled: __props.disabled,
525
525
  onClick: handleToggle
526
526
  }, [
527
- createElementVNode("div", _hoisted_2$D, [
527
+ createElementVNode("div", _hoisted_2$E, [
528
528
  renderSlot(_ctx.$slots, "title", {}, () => [
529
529
  createTextVNode(toDisplayString(__props.title), 1)
530
530
  ])
531
531
  ]),
532
- createElementVNode("div", _hoisted_3$z, [
532
+ createElementVNode("div", _hoisted_3$A, [
533
533
  (openBlock(), createElementBlock("svg", {
534
534
  class: normalizeClass(["ina-accordion__icon", { "ina-accordion__icon--open": isOpen.value }]),
535
535
  viewBox: "0 0 24 24",
@@ -545,7 +545,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
545
545
  }, null, -1)
546
546
  ])], 2))
547
547
  ])
548
- ], 8, _hoisted_1$J),
548
+ ], 8, _hoisted_1$K),
549
549
  createElementVNode("div", {
550
550
  id: contentId.value,
551
551
  class: normalizeClass(["ina-accordion__content", { "ina-accordion__content--open": isOpen.value }]),
@@ -559,9 +559,9 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
559
559
  };
560
560
  }
561
561
  });
562
- const _hoisted_1$I = { class: "ina-accordion-card__item" };
563
- const _hoisted_2$C = ["id", "aria-expanded", "aria-controls"];
564
- const _hoisted_3$y = { class: "ina-accordion-card__header-content" };
562
+ const _hoisted_1$J = { class: "ina-accordion-card__item" };
563
+ const _hoisted_2$D = ["id", "aria-expanded", "aria-controls"];
564
+ const _hoisted_3$z = { class: "ina-accordion-card__header-content" };
565
565
  const _hoisted_4$t = {
566
566
  key: 0,
567
567
  class: "ina-accordion-card__icon"
@@ -574,7 +574,7 @@ const _hoisted_7$j = {
574
574
  };
575
575
  const _hoisted_8$e = ["id", "aria-labelledby"];
576
576
  const _hoisted_9$b = { class: "ina-accordion-card__body" };
577
- const _sfc_main$N = /* @__PURE__ */ defineComponent({
577
+ const _sfc_main$O = /* @__PURE__ */ defineComponent({
578
578
  __name: "AccordionCard",
579
579
  props: {
580
580
  title: { default: "" },
@@ -617,7 +617,7 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
617
617
  return openBlock(), createElementBlock("div", {
618
618
  class: normalizeClass(["ina-accordion-card", cardClasses.value])
619
619
  }, [
620
- createElementVNode("div", _hoisted_1$I, [
620
+ createElementVNode("div", _hoisted_1$J, [
621
621
  createElementVNode("button", {
622
622
  id: headerId.value,
623
623
  type: "button",
@@ -626,7 +626,7 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
626
626
  "aria-controls": contentId.value,
627
627
  onClick: toggle
628
628
  }, [
629
- createElementVNode("div", _hoisted_3$y, [
629
+ createElementVNode("div", _hoisted_3$z, [
630
630
  __props.icon ? (openBlock(), createElementBlock("div", _hoisted_4$t, [
631
631
  (openBlock(), createBlock(resolveDynamicComponent(__props.icon), { size: 20 }))
632
632
  ])) : createCommentVNode("", true),
@@ -655,7 +655,7 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
655
655
  "stroke-linejoin": "round"
656
656
  }, null, -1)
657
657
  ])], 2))
658
- ], 8, _hoisted_2$C),
658
+ ], 8, _hoisted_2$D),
659
659
  createVNode(Transition, { name: "accordion" }, {
660
660
  default: withCtx(() => [
661
661
  isOpen.value ? (openBlock(), createElementBlock("div", {
@@ -683,9 +683,9 @@ const _export_sfc = (sfc, props) => {
683
683
  }
684
684
  return target;
685
685
  };
686
- const AccordionCard = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-5e3f081f"]]);
687
- const _hoisted_1$H = { class: "ina-accordion-group" };
688
- const _sfc_main$M = /* @__PURE__ */ defineComponent({
686
+ const AccordionCard = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["__scopeId", "data-v-5e3f081f"]]);
687
+ const _hoisted_1$I = { class: "ina-accordion-group" };
688
+ const _sfc_main$N = /* @__PURE__ */ defineComponent({
689
689
  __name: "AccordionGroup",
690
690
  props: {
691
691
  multiple: { type: Boolean, default: false },
@@ -765,17 +765,17 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
765
765
  openIndexes: computed(() => openIndexes.value)
766
766
  });
767
767
  return (_ctx, _cache) => {
768
- return openBlock(), createElementBlock("div", _hoisted_1$H, [
768
+ return openBlock(), createElementBlock("div", _hoisted_1$I, [
769
769
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
770
770
  ]);
771
771
  };
772
772
  }
773
773
  });
774
- const AccordionGroup = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__scopeId", "data-v-a85c5702"]]);
775
- const _hoisted_1$G = ["disabled", "aria-expanded"];
776
- const _hoisted_2$B = { class: "ina-action-dropdown__trigger-content" };
777
- const _hoisted_3$x = { class: "ina-action-dropdown__menu" };
778
- const _sfc_main$L = /* @__PURE__ */ defineComponent({
774
+ const AccordionGroup = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-a85c5702"]]);
775
+ const _hoisted_1$H = ["disabled", "aria-expanded"];
776
+ const _hoisted_2$C = { class: "ina-action-dropdown__trigger-content" };
777
+ const _hoisted_3$y = { class: "ina-action-dropdown__menu" };
778
+ const _sfc_main$M = /* @__PURE__ */ defineComponent({
779
779
  __name: "ActionDropdown",
780
780
  props: {
781
781
  disabled: { type: Boolean, default: false },
@@ -903,7 +903,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
903
903
  "aria-expanded": isOpen.value,
904
904
  "aria-haspopup": true
905
905
  }, [
906
- createElementVNode("span", _hoisted_2$B, [
906
+ createElementVNode("span", _hoisted_2$C, [
907
907
  renderSlot(_ctx.$slots, "trigger", {}, () => [
908
908
  _cache[1] || (_cache[1] = createElementVNode("svg", {
909
909
  width: "16",
@@ -933,7 +933,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
933
933
  ], -1))
934
934
  ], true)
935
935
  ])
936
- ], 42, _hoisted_1$G),
936
+ ], 42, _hoisted_1$H),
937
937
  createVNode(Transition, { name: "dropdown" }, {
938
938
  default: withCtx(() => [
939
939
  isOpen.value ? (openBlock(), createElementBlock("div", {
@@ -945,7 +945,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
945
945
  onClick: _cache[0] || (_cache[0] = withModifiers(() => {
946
946
  }, ["stop"]))
947
947
  }, [
948
- createElementVNode("div", _hoisted_3$x, [
948
+ createElementVNode("div", _hoisted_3$y, [
949
949
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
950
950
  ])
951
951
  ], 4)) : createCommentVNode("", true)
@@ -956,7 +956,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
956
956
  };
957
957
  }
958
958
  });
959
- const ActionDropdown = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__scopeId", "data-v-7f534f78"]]);
959
+ const ActionDropdown = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__scopeId", "data-v-7f534f78"]]);
960
960
  /**
961
961
  * @license @tabler/icons-vue v3.35.0 - MIT
962
962
  *
@@ -1188,12 +1188,12 @@ var IconUpload = createVueComponent("outline", "upload", "Upload", [["path", { "
1188
1188
  * See the LICENSE file in the root directory of this source tree.
1189
1189
  */
1190
1190
  var IconX = createVueComponent("outline", "x", "X", [["path", { "d": "M18 6l-12 12", "key": "svg-0" }], ["path", { "d": "M6 6l12 12", "key": "svg-1" }]]);
1191
- const _hoisted_1$F = {
1191
+ const _hoisted_1$G = {
1192
1192
  key: 0,
1193
1193
  class: "ina-alert__icon"
1194
1194
  };
1195
- const _hoisted_2$A = { class: "ina-alert__content" };
1196
- const _hoisted_3$w = { class: "ina-alert__text-section" };
1195
+ const _hoisted_2$B = { class: "ina-alert__content" };
1196
+ const _hoisted_3$x = { class: "ina-alert__text-section" };
1197
1197
  const _hoisted_4$s = {
1198
1198
  key: 0,
1199
1199
  class: "ina-alert__title"
@@ -1207,7 +1207,7 @@ const _hoisted_6$j = {
1207
1207
  class: "ina-alert__actions"
1208
1208
  };
1209
1209
  const _hoisted_7$i = ["aria-label"];
1210
- const _sfc_main$K = /* @__PURE__ */ defineComponent({
1210
+ const _sfc_main$L = /* @__PURE__ */ defineComponent({
1211
1211
  __name: "Alert",
1212
1212
  props: {
1213
1213
  variant: { default: "info" },
@@ -1240,7 +1240,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
1240
1240
  class: normalizeClass(["ina-alert", alertClasses.value]),
1241
1241
  role: "alert"
1242
1242
  }, [
1243
- __props.icon || showVariantIcon.value ? (openBlock(), createElementBlock("div", _hoisted_1$F, [
1243
+ __props.icon || showVariantIcon.value ? (openBlock(), createElementBlock("div", _hoisted_1$G, [
1244
1244
  __props.icon ? (openBlock(), createBlock(resolveDynamicComponent(__props.icon), {
1245
1245
  key: 0,
1246
1246
  size: 20
@@ -1261,8 +1261,8 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
1261
1261
  size: 20
1262
1262
  })) : createCommentVNode("", true)
1263
1263
  ])) : createCommentVNode("", true),
1264
- createElementVNode("div", _hoisted_2$A, [
1265
- createElementVNode("div", _hoisted_3$w, [
1264
+ createElementVNode("div", _hoisted_2$B, [
1265
+ createElementVNode("div", _hoisted_3$x, [
1266
1266
  __props.title ? (openBlock(), createElementBlock("div", _hoisted_4$s, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
1267
1267
  _ctx.$slots.default || __props.message ? (openBlock(), createElementBlock("div", _hoisted_5$m, [
1268
1268
  renderSlot(_ctx.$slots, "default", {}, () => [
@@ -1301,8 +1301,8 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
1301
1301
  };
1302
1302
  }
1303
1303
  });
1304
- const _hoisted_1$E = ["src", "alt"];
1305
- const _sfc_main$J = /* @__PURE__ */ defineComponent({
1304
+ const _hoisted_1$F = ["src", "alt"];
1305
+ const _sfc_main$K = /* @__PURE__ */ defineComponent({
1306
1306
  __name: "Avatar",
1307
1307
  props: {
1308
1308
  src: {},
@@ -1342,22 +1342,22 @@ const _sfc_main$J = /* @__PURE__ */ defineComponent({
1342
1342
  class: normalizeClass(avatarClasses.value),
1343
1343
  onError: handleImageError,
1344
1344
  onLoad: handleImageLoad
1345
- }, null, 42, _hoisted_1$E)) : (openBlock(), createElementBlock("div", {
1345
+ }, null, 42, _hoisted_1$F)) : (openBlock(), createElementBlock("div", {
1346
1346
  key: 1,
1347
1347
  class: normalizeClass(avatarClasses.value)
1348
1348
  }, toDisplayString(__props.initials ? __props.initials.slice(0, 2).toUpperCase() : ""), 3));
1349
1349
  };
1350
1350
  }
1351
1351
  });
1352
- const _hoisted_1$D = {
1352
+ const _hoisted_1$E = {
1353
1353
  key: 0,
1354
1354
  class: "ina-badge__prefix-icon"
1355
1355
  };
1356
- const _hoisted_2$z = {
1356
+ const _hoisted_2$A = {
1357
1357
  key: 1,
1358
1358
  class: "ina-badge__suffix-icon"
1359
1359
  };
1360
- const _sfc_main$I = /* @__PURE__ */ defineComponent({
1360
+ const _sfc_main$J = /* @__PURE__ */ defineComponent({
1361
1361
  __name: "Badge",
1362
1362
  props: {
1363
1363
  type: { default: "soft" },
@@ -1387,20 +1387,20 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
1387
1387
  return openBlock(), createElementBlock("span", {
1388
1388
  class: normalizeClass(["ina-badge", badgeClasses.value])
1389
1389
  }, [
1390
- __props.prefixIcon ? (openBlock(), createElementBlock("span", _hoisted_1$D, [
1390
+ __props.prefixIcon ? (openBlock(), createElementBlock("span", _hoisted_1$E, [
1391
1391
  (openBlock(), createBlock(resolveDynamicComponent(__props.prefixIcon)))
1392
1392
  ])) : createCommentVNode("", true),
1393
1393
  createElementVNode("span", null, [
1394
1394
  renderSlot(_ctx.$slots, "default")
1395
1395
  ]),
1396
- __props.suffixIcon ? (openBlock(), createElementBlock("span", _hoisted_2$z, [
1396
+ __props.suffixIcon ? (openBlock(), createElementBlock("span", _hoisted_2$A, [
1397
1397
  (openBlock(), createBlock(resolveDynamicComponent(__props.suffixIcon)))
1398
1398
  ])) : createCommentVNode("", true)
1399
1399
  ], 2);
1400
1400
  };
1401
1401
  }
1402
1402
  });
1403
- const _sfc_main$H = /* @__PURE__ */ defineComponent({
1403
+ const _sfc_main$I = /* @__PURE__ */ defineComponent({
1404
1404
  __name: "BottomSheet",
1405
1405
  props: {
1406
1406
  open: { type: Boolean, default: false },
@@ -1466,18 +1466,18 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
1466
1466
  };
1467
1467
  }
1468
1468
  });
1469
- const _hoisted_1$C = { class: "ina-breadcrumb__list" };
1470
- const _hoisted_2$y = {
1469
+ const _hoisted_1$D = { class: "ina-breadcrumb__list" };
1470
+ const _hoisted_2$z = {
1471
1471
  key: 0,
1472
1472
  class: "ina-breadcrumb__icon"
1473
1473
  };
1474
- const _hoisted_3$v = { class: "ina-breadcrumb__text" };
1474
+ const _hoisted_3$w = { class: "ina-breadcrumb__text" };
1475
1475
  const _hoisted_4$r = {
1476
1476
  key: 0,
1477
1477
  class: "ina-breadcrumb__separator",
1478
1478
  "aria-hidden": "true"
1479
1479
  };
1480
- const _sfc_main$G = /* @__PURE__ */ defineComponent({
1480
+ const _sfc_main$H = /* @__PURE__ */ defineComponent({
1481
1481
  __name: "Breadcrumb",
1482
1482
  props: {
1483
1483
  items: {},
@@ -1543,7 +1543,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
1543
1543
  class: normalizeClass(["ina-breadcrumb", breadcrumbClasses.value]),
1544
1544
  "aria-label": "Breadcrumb"
1545
1545
  }, [
1546
- createElementVNode("ol", _hoisted_1$C, [
1546
+ createElementVNode("ol", _hoisted_1$D, [
1547
1547
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item, index2) => {
1548
1548
  return openBlock(), createElementBlock("li", {
1549
1549
  key: index2,
@@ -1555,10 +1555,10 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
1555
1555
  onClick: ($event) => handleItemClick(item, index2)
1556
1556
  }, {
1557
1557
  default: withCtx(() => [
1558
- item.icon ? (openBlock(), createElementBlock("span", _hoisted_2$y, [
1558
+ item.icon ? (openBlock(), createElementBlock("span", _hoisted_2$z, [
1559
1559
  (openBlock(), createBlock(resolveDynamicComponent(item.icon), { size: 16 }))
1560
1560
  ])) : createCommentVNode("", true),
1561
- createElementVNode("span", _hoisted_3$v, toDisplayString(getTruncatedLabel(item.label, index2)), 1)
1561
+ createElementVNode("span", _hoisted_3$w, toDisplayString(getTruncatedLabel(item.label, index2)), 1)
1562
1562
  ]),
1563
1563
  _: 2
1564
1564
  }, 1032, ["href", "class", "onClick"])),
@@ -1576,8 +1576,8 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
1576
1576
  };
1577
1577
  }
1578
1578
  });
1579
- const _hoisted_1$B = ["type", "disabled"];
1580
- const _sfc_main$F = /* @__PURE__ */ defineComponent({
1579
+ const _hoisted_1$C = ["type", "disabled"];
1580
+ const _sfc_main$G = /* @__PURE__ */ defineComponent({
1581
1581
  __name: "Button",
1582
1582
  props: {
1583
1583
  hierarchy: { default: "primary" },
@@ -1625,13 +1625,13 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
1625
1625
  prefixIconNode.value ? (openBlock(), createBlock(resolveDynamicComponent(prefixIconNode.value), { key: 0 })) : createCommentVNode("", true),
1626
1626
  renderSlot(_ctx.$slots, "default"),
1627
1627
  suffixIconNode.value ? (openBlock(), createBlock(resolveDynamicComponent(suffixIconNode.value), { key: 1 })) : createCommentVNode("", true)
1628
- ], 16, _hoisted_1$B);
1628
+ ], 16, _hoisted_1$C);
1629
1629
  };
1630
1630
  }
1631
1631
  });
1632
- const _hoisted_1$A = ["disabled", "onClick", "aria-pressed", "aria-disabled", "name", "value"];
1633
- const _hoisted_2$x = { class: "ina-button-group__button-content" };
1634
- const _sfc_main$E = /* @__PURE__ */ defineComponent({
1632
+ const _hoisted_1$B = ["disabled", "onClick", "aria-pressed", "aria-disabled", "name", "value"];
1633
+ const _hoisted_2$y = { class: "ina-button-group__button-content" };
1634
+ const _sfc_main$F = /* @__PURE__ */ defineComponent({
1635
1635
  __name: "ButtonGroup",
1636
1636
  props: {
1637
1637
  options: {},
@@ -1693,7 +1693,7 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
1693
1693
  name: __props.name,
1694
1694
  value: option.value
1695
1695
  }, [
1696
- createElementVNode("span", _hoisted_2$x, [
1696
+ createElementVNode("span", _hoisted_2$y, [
1697
1697
  renderSlot(_ctx.$slots, `option-${index2}`, {
1698
1698
  option,
1699
1699
  selected: isSelected(option)
@@ -1701,18 +1701,18 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
1701
1701
  createTextVNode(toDisplayString(option.label), 1)
1702
1702
  ])
1703
1703
  ])
1704
- ], 10, _hoisted_1$A);
1704
+ ], 10, _hoisted_1$B);
1705
1705
  }), 128))
1706
1706
  ], 2);
1707
1707
  };
1708
1708
  }
1709
1709
  });
1710
- const _hoisted_1$z = {
1710
+ const _hoisted_1$A = {
1711
1711
  key: 0,
1712
1712
  class: "ina-card__media"
1713
1713
  };
1714
- const _hoisted_2$w = ["src", "alt"];
1715
- const _hoisted_3$u = {
1714
+ const _hoisted_2$x = ["src", "alt"];
1715
+ const _hoisted_3$v = {
1716
1716
  key: 1,
1717
1717
  class: "ina-card__media"
1718
1718
  };
@@ -1774,7 +1774,7 @@ const _hoisted_22$2 = {
1774
1774
  key: 2,
1775
1775
  class: "ina-card__footer"
1776
1776
  };
1777
- const _sfc_main$D = /* @__PURE__ */ defineComponent({
1777
+ const _sfc_main$E = /* @__PURE__ */ defineComponent({
1778
1778
  __name: "Card",
1779
1779
  props: {
1780
1780
  variant: { default: "basic" },
@@ -1843,16 +1843,16 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
1843
1843
  return openBlock(), createElementBlock("div", {
1844
1844
  class: normalizeClass(["ina-card", cardClasses.value])
1845
1845
  }, [
1846
- __props.variant === "basic" && computedMediaPosition.value === "top" ? (openBlock(), createElementBlock("div", _hoisted_1$z, [
1846
+ __props.variant === "basic" && computedMediaPosition.value === "top" ? (openBlock(), createElementBlock("div", _hoisted_1$A, [
1847
1847
  renderSlot(_ctx.$slots, "media", {}, () => [
1848
1848
  __props.mediaSrc ? (openBlock(), createElementBlock("img", {
1849
1849
  key: 0,
1850
1850
  src: __props.mediaSrc,
1851
1851
  alt: __props.mediaAlt || "Card media"
1852
- }, null, 8, _hoisted_2$w)) : createCommentVNode("", true)
1852
+ }, null, 8, _hoisted_2$x)) : createCommentVNode("", true)
1853
1853
  ])
1854
1854
  ])) : createCommentVNode("", true),
1855
- __props.variant === "overlay" ? (openBlock(), createElementBlock("div", _hoisted_3$u, [
1855
+ __props.variant === "overlay" ? (openBlock(), createElementBlock("div", _hoisted_3$v, [
1856
1856
  renderSlot(_ctx.$slots, "media", {}, () => [
1857
1857
  __props.mediaSrc ? (openBlock(), createElementBlock("img", {
1858
1858
  key: 0,
@@ -1874,18 +1874,22 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
1874
1874
  createElementVNode("div", null, [
1875
1875
  __props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("h3", _hoisted_8$d, [
1876
1876
  renderSlot(_ctx.$slots, "title", {}, () => [
1877
- createTextVNode(toDisplayString(__props.title), 1)
1877
+ typeof __props.title !== "string" && __props.title ? (openBlock(), createBlock(resolveDynamicComponent(__props.title), { key: 0 })) : typeof __props.title === "string" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1878
+ createTextVNode(toDisplayString(__props.title), 1)
1879
+ ], 64)) : createCommentVNode("", true)
1878
1880
  ])
1879
1881
  ])) : createCommentVNode("", true),
1880
1882
  __props.description || _ctx.$slots.description ? (openBlock(), createElementBlock("p", _hoisted_9$a, [
1881
1883
  renderSlot(_ctx.$slots, "description", {}, () => [
1882
- createTextVNode(toDisplayString(__props.description), 1)
1884
+ typeof __props.description !== "string" && __props.description ? (openBlock(), createBlock(resolveDynamicComponent(__props.description), { key: 0 })) : typeof __props.description === "string" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1885
+ createTextVNode(toDisplayString(__props.description), 1)
1886
+ ], 64)) : createCommentVNode("", true)
1883
1887
  ])
1884
1888
  ])) : createCommentVNode("", true)
1885
1889
  ]),
1886
1890
  __props.showButton || _ctx.$slots.button ? (openBlock(), createElementBlock("div", _hoisted_10$9, [
1887
1891
  renderSlot(_ctx.$slots, "button", {}, () => [
1888
- __props.showButton && __props.buttonText ? (openBlock(), createBlock(_sfc_main$F, {
1892
+ __props.showButton && __props.buttonText ? (openBlock(), createBlock(_sfc_main$G, {
1889
1893
  key: 0,
1890
1894
  hierarchy: __props.buttonHierarchy,
1891
1895
  size: "md",
@@ -1930,12 +1934,16 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
1930
1934
  __props.showHeader && (__props.title || _ctx.$slots.title || _ctx.$slots.header) ? (openBlock(), createElementBlock("div", _hoisted_17$3, [
1931
1935
  __props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("div", _hoisted_18$3, [
1932
1936
  renderSlot(_ctx.$slots, "title", {}, () => [
1933
- createTextVNode(toDisplayString(__props.title), 1)
1937
+ typeof __props.title !== "string" && __props.title ? (openBlock(), createBlock(resolveDynamicComponent(__props.title), { key: 0 })) : typeof __props.title === "string" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1938
+ createTextVNode(toDisplayString(__props.title), 1)
1939
+ ], 64)) : createCommentVNode("", true)
1934
1940
  ])
1935
1941
  ])) : createCommentVNode("", true),
1936
1942
  __props.subtitle || _ctx.$slots.subtitle ? (openBlock(), createElementBlock("div", _hoisted_19$3, [
1937
1943
  renderSlot(_ctx.$slots, "subtitle", {}, () => [
1938
- createTextVNode(toDisplayString(__props.subtitle), 1)
1944
+ typeof __props.subtitle !== "string" && __props.subtitle ? (openBlock(), createBlock(resolveDynamicComponent(__props.subtitle), { key: 0 })) : typeof __props.subtitle === "string" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1945
+ createTextVNode(toDisplayString(__props.subtitle), 1)
1946
+ ], 64)) : createCommentVNode("", true)
1939
1947
  ])
1940
1948
  ])) : createCommentVNode("", true),
1941
1949
  _ctx.$slots.header ? (openBlock(), createElementBlock("div", _hoisted_20$3, [
@@ -1953,9 +1961,9 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
1953
1961
  };
1954
1962
  }
1955
1963
  });
1956
- const _hoisted_1$y = ["for"];
1957
- const _hoisted_2$v = ["id", "checked", "disabled", "readonly", "indeterminate"];
1958
- const _hoisted_3$t = {
1964
+ const _hoisted_1$z = ["for"];
1965
+ const _hoisted_2$w = ["id", "checked", "disabled", "readonly", "indeterminate"];
1966
+ const _hoisted_3$u = {
1959
1967
  key: 0,
1960
1968
  class: "ina-checkbox__icon",
1961
1969
  width: "14",
@@ -1982,7 +1990,7 @@ const _hoisted_7$g = {
1982
1990
  key: 1,
1983
1991
  class: "ina-checkbox__subtext"
1984
1992
  };
1985
- const _sfc_main$C = /* @__PURE__ */ defineComponent({
1993
+ const _sfc_main$D = /* @__PURE__ */ defineComponent({
1986
1994
  __name: "Checkbox",
1987
1995
  props: {
1988
1996
  modelValue: { type: [Boolean, Array], default: false },
@@ -2091,11 +2099,11 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
2091
2099
  onChange: handleChange,
2092
2100
  onFocus: handleFocus,
2093
2101
  onBlur: handleBlur
2094
- }), null, 16, _hoisted_2$v),
2102
+ }), null, 16, _hoisted_2$w),
2095
2103
  createElementVNode("div", {
2096
2104
  class: normalizeClass(boxClasses.value)
2097
2105
  }, [
2098
- checked.value && !__props.indeterminate ? (openBlock(), createElementBlock("svg", _hoisted_3$t, [..._cache[0] || (_cache[0] = [
2106
+ checked.value && !__props.indeterminate ? (openBlock(), createElementBlock("svg", _hoisted_3$u, [..._cache[0] || (_cache[0] = [
2099
2107
  createElementVNode("path", {
2100
2108
  d: "M20 6L9 17L4 12",
2101
2109
  stroke: "currentColor",
@@ -2121,7 +2129,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
2121
2129
  ])) : createCommentVNode("", true),
2122
2130
  __props.subtext ? (openBlock(), createElementBlock("span", _hoisted_7$g, toDisplayString(__props.subtext), 1)) : createCommentVNode("", true)
2123
2131
  ])
2124
- ], 10, _hoisted_1$y),
2132
+ ], 10, _hoisted_1$z),
2125
2133
  __props.statusMessage ? (openBlock(), createElementBlock("div", {
2126
2134
  key: 0,
2127
2135
  class: normalizeClass(statusClasses.value)
@@ -2336,9 +2344,9 @@ function sanitizeFileName(fileName) {
2336
2344
  sanitized = sanitized.replace(/^[\s.]+|[\s.]+$/g, "");
2337
2345
  return sanitized || "file";
2338
2346
  }
2339
- const _hoisted_1$x = { class: "ina-text-field" };
2340
- const _hoisted_2$u = ["for"];
2341
- const _hoisted_3$s = {
2347
+ const _hoisted_1$y = { class: "ina-text-field" };
2348
+ const _hoisted_2$v = ["for"];
2349
+ const _hoisted_3$t = {
2342
2350
  key: 0,
2343
2351
  class: "ina-text-field__required"
2344
2352
  };
@@ -2351,7 +2359,7 @@ const _hoisted_6$g = {
2351
2359
  key: 1,
2352
2360
  class: "ina-text-field__char-count"
2353
2361
  };
2354
- const _sfc_main$B = /* @__PURE__ */ defineComponent({
2362
+ const _sfc_main$C = /* @__PURE__ */ defineComponent({
2355
2363
  __name: "TextField",
2356
2364
  props: {
2357
2365
  modelValue: { default: "" },
@@ -2564,15 +2572,15 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
2564
2572
  }
2565
2573
  });
2566
2574
  return (_ctx, _cache) => {
2567
- return openBlock(), createElementBlock("div", _hoisted_1$x, [
2575
+ return openBlock(), createElementBlock("div", _hoisted_1$y, [
2568
2576
  __props.label ? (openBlock(), createElementBlock("label", {
2569
2577
  key: 0,
2570
2578
  for: inputId.value,
2571
2579
  class: "ina-text-field__label"
2572
2580
  }, [
2573
2581
  createTextVNode(toDisplayString(__props.label) + " ", 1),
2574
- __props.required ? (openBlock(), createElementBlock("span", _hoisted_3$s, "*")) : createCommentVNode("", true)
2575
- ], 8, _hoisted_2$u)) : createCommentVNode("", true),
2582
+ __props.required ? (openBlock(), createElementBlock("span", _hoisted_3$t, "*")) : createCommentVNode("", true)
2583
+ ], 8, _hoisted_2$v)) : createCommentVNode("", true),
2576
2584
  createElementVNode("div", {
2577
2585
  class: normalizeClass(wrapperClasses.value)
2578
2586
  }, [
@@ -2635,15 +2643,15 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
2635
2643
  };
2636
2644
  }
2637
2645
  });
2638
- const _hoisted_1$w = { class: "ina-chip__list" };
2639
- const _hoisted_2$t = ["onClick"];
2640
- const _hoisted_3$r = {
2646
+ const _hoisted_1$x = { class: "ina-chip__list" };
2647
+ const _hoisted_2$u = ["onClick"];
2648
+ const _hoisted_3$s = {
2641
2649
  key: 0,
2642
2650
  class: "ina-chip__custom-field"
2643
2651
  };
2644
2652
  const _hoisted_4$n = { key: 0 };
2645
2653
  const _hoisted_5$i = { key: 1 };
2646
- const _sfc_main$A = /* @__PURE__ */ defineComponent({
2654
+ const _sfc_main$B = /* @__PURE__ */ defineComponent({
2647
2655
  __name: "Chip",
2648
2656
  props: {
2649
2657
  options: {},
@@ -2747,21 +2755,21 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
2747
2755
  return openBlock(), createElementBlock("div", {
2748
2756
  class: normalizeClass(["ina-chip", chipContainerClasses.value])
2749
2757
  }, [
2750
- createElementVNode("div", _hoisted_1$w, [
2758
+ createElementVNode("div", _hoisted_1$x, [
2751
2759
  (openBlock(true), createElementBlock(Fragment, null, renderList(allOptions.value, (opt, index2) => {
2752
2760
  return openBlock(), createElementBlock("button", {
2753
2761
  key: `${opt.label}-${index2}`,
2754
2762
  type: "button",
2755
2763
  class: normalizeClass(getChipItemClasses(opt)),
2756
2764
  onClick: ($event) => handleChipClick(opt)
2757
- }, toDisplayString(opt.label), 11, _hoisted_2$t);
2765
+ }, toDisplayString(opt.label), 11, _hoisted_2$u);
2758
2766
  }), 128))
2759
2767
  ]),
2760
- __props.showCustomization && showInput.value ? (openBlock(), createElementBlock("div", _hoisted_3$r, [
2768
+ __props.showCustomization && showInput.value ? (openBlock(), createElementBlock("div", _hoisted_3$s, [
2761
2769
  __props.customizationComponent ? (openBlock(), createElementBlock("div", _hoisted_4$n, [
2762
2770
  (openBlock(), createBlock(resolveDynamicComponent(__props.customizationComponent)))
2763
2771
  ])) : (openBlock(), createElementBlock("div", _hoisted_5$i, [
2764
- createVNode(_sfc_main$B, {
2772
+ createVNode(_sfc_main$C, {
2765
2773
  "model-value": tempValue.value,
2766
2774
  class: "ina-chip__input",
2767
2775
  placeholder: "Masukkan data yang Anda inginkan",
@@ -2776,6 +2784,89 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
2776
2784
  };
2777
2785
  }
2778
2786
  });
2787
+ const _hoisted_1$w = ["width", "height", "viewBox"];
2788
+ const _hoisted_2$t = ["cx", "cy", "r", "stroke", "stroke-width"];
2789
+ const _hoisted_3$r = ["cx", "cy", "r", "stroke", "stroke-width", "stroke-dasharray", "stroke-dashoffset"];
2790
+ const _sfc_main$A = /* @__PURE__ */ defineComponent({
2791
+ __name: "CircleProgressBar",
2792
+ props: {
2793
+ progress: { default: 0 },
2794
+ diameter: { default: 20 },
2795
+ strokeWidth: { default: 3 },
2796
+ variant: { default: "primary" },
2797
+ trackColor: { default: "#EAECF0" },
2798
+ className: { default: "" }
2799
+ },
2800
+ setup(__props) {
2801
+ const props = __props;
2802
+ const VARIANT_MAP = {
2803
+ primary: "var(--ina-primary-500)",
2804
+ secondary: "var(--ina-secondary-500)",
2805
+ success: "var(--ina-success-500)",
2806
+ warning: "var(--ina-warning-500)",
2807
+ error: "var(--ina-error-500)"
2808
+ };
2809
+ const normalizedProgress = computed(
2810
+ () => Math.min(100, Math.max(0, props.progress))
2811
+ );
2812
+ const strokeColor = computed(() => {
2813
+ const isHex = props.variant.startsWith("#");
2814
+ return isHex ? props.variant : VARIANT_MAP[props.variant] || VARIANT_MAP.primary;
2815
+ });
2816
+ const center = computed(() => props.diameter / 2);
2817
+ const radius = computed(() => (props.diameter - props.strokeWidth) / 2);
2818
+ const circumference = computed(() => 2 * Math.PI * radius.value);
2819
+ const strokeDashoffset = computed(
2820
+ () => circumference.value - normalizedProgress.value / 100 * circumference.value
2821
+ );
2822
+ const containerClasses = computed(() => {
2823
+ return [
2824
+ "ina-circle-progress-bar",
2825
+ "inline-flex items-center justify-center",
2826
+ props.className
2827
+ ].filter(Boolean).join(" ");
2828
+ });
2829
+ const containerStyle = computed(() => ({
2830
+ width: `${props.diameter}px`,
2831
+ height: `${props.diameter}px`
2832
+ }));
2833
+ return (_ctx, _cache) => {
2834
+ return openBlock(), createElementBlock("div", {
2835
+ class: normalizeClass(containerClasses.value),
2836
+ style: normalizeStyle(containerStyle.value)
2837
+ }, [
2838
+ (openBlock(), createElementBlock("svg", {
2839
+ width: __props.diameter,
2840
+ height: __props.diameter,
2841
+ viewBox: `0 0 ${__props.diameter} ${__props.diameter}`,
2842
+ fill: "none",
2843
+ xmlns: "http://www.w3.org/2000/svg",
2844
+ style: { "transform": "rotate(-90deg)" }
2845
+ }, [
2846
+ createElementVNode("circle", {
2847
+ cx: center.value,
2848
+ cy: center.value,
2849
+ r: radius.value,
2850
+ stroke: __props.trackColor,
2851
+ "stroke-width": __props.strokeWidth,
2852
+ fill: "none"
2853
+ }, null, 8, _hoisted_2$t),
2854
+ createElementVNode("circle", {
2855
+ cx: center.value,
2856
+ cy: center.value,
2857
+ r: radius.value,
2858
+ stroke: strokeColor.value,
2859
+ "stroke-width": __props.strokeWidth,
2860
+ fill: "none",
2861
+ "stroke-linecap": "round",
2862
+ "stroke-dasharray": circumference.value,
2863
+ "stroke-dashoffset": strokeDashoffset.value
2864
+ }, null, 8, _hoisted_3$r)
2865
+ ], 8, _hoisted_1$w))
2866
+ ], 6);
2867
+ };
2868
+ }
2869
+ });
2779
2870
  const _hoisted_1$v = ["id", "aria-expanded", "aria-controls"];
2780
2871
  const _hoisted_2$s = { class: "ina-collapse__title" };
2781
2872
  const _hoisted_3$q = ["id", "aria-labelledby"];
@@ -5155,13 +5246,254 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
5155
5246
  };
5156
5247
  }
5157
5248
  });
5158
- const _hoisted_1$k = ["for"];
5159
- const _hoisted_2$j = {
5249
+ const COUNTRIES = [
5250
+ { code: "ID", name: "Indonesia", dialCode: "+62", flag: "🇮🇩" },
5251
+ { code: "AF", name: "Afghanistan", dialCode: "+93", flag: "🇦🇫" },
5252
+ { code: "AL", name: "Albania", dialCode: "+355", flag: "🇦🇱" },
5253
+ { code: "DZ", name: "Algeria", dialCode: "+213", flag: "🇩🇿" },
5254
+ { code: "AS", name: "American Samoa", dialCode: "+1684", flag: "🇦🇸" },
5255
+ { code: "AD", name: "Andorra", dialCode: "+376", flag: "🇦🇩" },
5256
+ { code: "AO", name: "Angola", dialCode: "+244", flag: "🇦🇴" },
5257
+ { code: "AI", name: "Anguilla", dialCode: "+1264", flag: "🇦🇮" },
5258
+ { code: "AG", name: "Antigua and Barbuda", dialCode: "+1268", flag: "🇦🇬" },
5259
+ { code: "AR", name: "Argentina", dialCode: "+54", flag: "🇦🇷" },
5260
+ { code: "AM", name: "Armenia", dialCode: "+374", flag: "🇦🇲" },
5261
+ { code: "AW", name: "Aruba", dialCode: "+297", flag: "🇦🇼" },
5262
+ { code: "AU", name: "Australia", dialCode: "+61", flag: "🇦🇺" },
5263
+ { code: "AT", name: "Austria", dialCode: "+43", flag: "🇦🇹" },
5264
+ { code: "AZ", name: "Azerbaijan", dialCode: "+994", flag: "🇦🇿" },
5265
+ { code: "BS", name: "Bahamas", dialCode: "+1242", flag: "🇧🇸" },
5266
+ { code: "BH", name: "Bahrain", dialCode: "+973", flag: "🇧🇭" },
5267
+ { code: "BD", name: "Bangladesh", dialCode: "+880", flag: "🇧🇩" },
5268
+ { code: "BB", name: "Barbados", dialCode: "+1246", flag: "🇧🇧" },
5269
+ { code: "BY", name: "Belarus", dialCode: "+375", flag: "🇧🇾" },
5270
+ { code: "BE", name: "Belgium", dialCode: "+32", flag: "🇧🇪" },
5271
+ { code: "BZ", name: "Belize", dialCode: "+501", flag: "🇧🇿" },
5272
+ { code: "BJ", name: "Benin", dialCode: "+229", flag: "🇧🇯" },
5273
+ { code: "BM", name: "Bermuda", dialCode: "+1441", flag: "🇧🇲" },
5274
+ { code: "BT", name: "Bhutan", dialCode: "+975", flag: "🇧🇹" },
5275
+ { code: "BO", name: "Bolivia", dialCode: "+591", flag: "🇧🇴" },
5276
+ { code: "BA", name: "Bosnia and Herzegovina", dialCode: "+387", flag: "🇧🇦" },
5277
+ { code: "BW", name: "Botswana", dialCode: "+267", flag: "🇧🇼" },
5278
+ { code: "BR", name: "Brazil", dialCode: "+55", flag: "🇧🇷" },
5279
+ { code: "IO", name: "British Indian Ocean Territory", dialCode: "+246", flag: "🇮🇴" },
5280
+ { code: "BN", name: "Brunei Darussalam", dialCode: "+673", flag: "🇧🇳" },
5281
+ { code: "BG", name: "Bulgaria", dialCode: "+359", flag: "🇧🇬" },
5282
+ { code: "BF", name: "Burkina Faso", dialCode: "+226", flag: "🇧🇫" },
5283
+ { code: "BI", name: "Burundi", dialCode: "+257", flag: "🇧🇮" },
5284
+ { code: "KH", name: "Cambodia", dialCode: "+855", flag: "🇰🇭" },
5285
+ { code: "CM", name: "Cameroon", dialCode: "+237", flag: "🇨🇲" },
5286
+ { code: "CA", name: "Canada", dialCode: "+1", flag: "🇨🇦" },
5287
+ { code: "CV", name: "Cape Verde", dialCode: "+238", flag: "🇨🇻" },
5288
+ { code: "KY", name: "Cayman Islands", dialCode: "+1345", flag: "🇰🇾" },
5289
+ { code: "CF", name: "Central African Republic", dialCode: "+236", flag: "🇨🇫" },
5290
+ { code: "TD", name: "Chad", dialCode: "+235", flag: "🇹🇩" },
5291
+ { code: "CL", name: "Chile", dialCode: "+56", flag: "🇨🇱" },
5292
+ { code: "CN", name: "China", dialCode: "+86", flag: "🇨🇳" },
5293
+ { code: "CX", name: "Christmas Island", dialCode: "+61", flag: "🇨🇽" },
5294
+ { code: "CC", name: "Cocos (Keeling) Islands", dialCode: "+61", flag: "🇨🇨" },
5295
+ { code: "CO", name: "Colombia", dialCode: "+57", flag: "🇨🇴" },
5296
+ { code: "KM", name: "Comoros", dialCode: "+269", flag: "🇰🇲" },
5297
+ { code: "CG", name: "Congo", dialCode: "+242", flag: "🇨🇬" },
5298
+ { code: "CD", name: "Congo, Democratic Republic of the", dialCode: "+243", flag: "🇨🇩" },
5299
+ { code: "CK", name: "Cook Islands", dialCode: "+682", flag: "🇨🇰" },
5300
+ { code: "CR", name: "Costa Rica", dialCode: "+506", flag: "🇨🇷" },
5301
+ { code: "CI", name: "Cote d'Ivoire", dialCode: "+225", flag: "🇨🇮" },
5302
+ { code: "HR", name: "Croatia", dialCode: "+385", flag: "🇭🇷" },
5303
+ { code: "CU", name: "Cuba", dialCode: "+53", flag: "🇨🇺" },
5304
+ { code: "CY", name: "Cyprus", dialCode: "+357", flag: "🇨🇾" },
5305
+ { code: "CZ", name: "Czech Republic", dialCode: "+420", flag: "🇨🇿" },
5306
+ { code: "DK", name: "Denmark", dialCode: "+45", flag: "🇩🇰" },
5307
+ { code: "DJ", name: "Djibouti", dialCode: "+253", flag: "🇩🇯" },
5308
+ { code: "DM", name: "Dominica", dialCode: "+1767", flag: "🇩🇲" },
5309
+ { code: "DO", name: "Dominican Republic", dialCode: "+1", flag: "🇩🇴" },
5310
+ { code: "EC", name: "Ecuador", dialCode: "+593", flag: "🇪🇨" },
5311
+ { code: "EG", name: "Egypt", dialCode: "+20", flag: "🇪🇬" },
5312
+ { code: "SV", name: "El Salvador", dialCode: "+503", flag: "🇸🇻" },
5313
+ { code: "GQ", name: "Equatorial Guinea", dialCode: "+240", flag: "🇬🇶" },
5314
+ { code: "ER", name: "Eritrea", dialCode: "+291", flag: "🇪🇷" },
5315
+ { code: "EE", name: "Estonia", dialCode: "+372", flag: "🇪🇪" },
5316
+ { code: "ET", name: "Ethiopia", dialCode: "+251", flag: "🇪🇹" },
5317
+ { code: "FK", name: "Falkland Islands (Malvinas)", dialCode: "+500", flag: "🇫🇰" },
5318
+ { code: "FO", name: "Faroe Islands", dialCode: "+298", flag: "🇫🇴" },
5319
+ { code: "FJ", name: "Fiji", dialCode: "+679", flag: "🇫🇯" },
5320
+ { code: "FI", name: "Finland", dialCode: "+358", flag: "🇫🇮" },
5321
+ { code: "FR", name: "France", dialCode: "+33", flag: "🇫🇷" },
5322
+ { code: "GF", name: "French Guiana", dialCode: "+594", flag: "🇬🇫" },
5323
+ { code: "PF", name: "French Polynesia", dialCode: "+689", flag: "🇵🇫" },
5324
+ { code: "GA", name: "Gabon", dialCode: "+241", flag: "🇬🇦" },
5325
+ { code: "GM", name: "Gambia", dialCode: "+220", flag: "🇬🇲" },
5326
+ { code: "GE", name: "Georgia", dialCode: "+995", flag: "🇬🇪" },
5327
+ { code: "DE", name: "Germany", dialCode: "+49", flag: "🇩🇪" },
5328
+ { code: "GH", name: "Ghana", dialCode: "+233", flag: "🇬🇭" },
5329
+ { code: "GI", name: "Gibraltar", dialCode: "+350", flag: "🇬🇮" },
5330
+ { code: "GR", name: "Greece", dialCode: "+30", flag: "🇬🇷" },
5331
+ { code: "GL", name: "Greenland", dialCode: "+299", flag: "🇬🇱" },
5332
+ { code: "GD", name: "Grenada", dialCode: "+1473", flag: "🇬🇩" },
5333
+ { code: "GP", name: "Guadeloupe", dialCode: "+590", flag: "🇬🇵" },
5334
+ { code: "GU", name: "Guam", dialCode: "+1671", flag: "🇬🇺" },
5335
+ { code: "GT", name: "Guatemala", dialCode: "+502", flag: "🇬🇹" },
5336
+ { code: "GG", name: "Guernsey", dialCode: "+44", flag: "🇬🇬" },
5337
+ { code: "GN", name: "Guinea", dialCode: "+224", flag: "🇬🇳" },
5338
+ { code: "GW", name: "Guinea-Bissau", dialCode: "+245", flag: "🇬🇼" },
5339
+ { code: "GY", name: "Guyana", dialCode: "+592", flag: "🇬🇾" },
5340
+ { code: "HT", name: "Haiti", dialCode: "+509", flag: "🇭🇹" },
5341
+ { code: "VA", name: "Holy See (Vatican City State)", dialCode: "+379", flag: "🇻🇦" },
5342
+ { code: "HN", name: "Honduras", dialCode: "+504", flag: "🇭🇳" },
5343
+ { code: "HK", name: "Hong Kong", dialCode: "+852", flag: "🇭🇰" },
5344
+ { code: "HU", name: "Hungary", dialCode: "+36", flag: "🇭🇺" },
5345
+ { code: "IS", name: "Iceland", dialCode: "+354", flag: "🇮🇸" },
5346
+ { code: "IN", name: "India", dialCode: "+91", flag: "🇮🇳" },
5347
+ { code: "IR", name: "Iran, Islamic Republic of", dialCode: "+98", flag: "🇮🇷" },
5348
+ { code: "IQ", name: "Iraq", dialCode: "+964", flag: "🇮🇶" },
5349
+ { code: "IE", name: "Ireland", dialCode: "+353", flag: "🇮🇪" },
5350
+ { code: "IM", name: "Isle of Man", dialCode: "+44", flag: "🇮🇲" },
5351
+ { code: "IL", name: "Israel", dialCode: "+972", flag: "🇮🇱" },
5352
+ { code: "IT", name: "Italy", dialCode: "+39", flag: "🇮🇹" },
5353
+ { code: "JM", name: "Jamaica", dialCode: "+1876", flag: "🇯🇲" },
5354
+ { code: "JP", name: "Japan", dialCode: "+81", flag: "🇯🇵" },
5355
+ { code: "JE", name: "Jersey", dialCode: "+44", flag: "🇯🇪" },
5356
+ { code: "JO", name: "Jordan", dialCode: "+962", flag: "🇯🇴" },
5357
+ { code: "KZ", name: "Kazakhstan", dialCode: "+7", flag: "🇰🇿" },
5358
+ { code: "KE", name: "Kenya", dialCode: "+254", flag: "🇰🇪" },
5359
+ { code: "KI", name: "Kiribati", dialCode: "+686", flag: "🇰🇮" },
5360
+ { code: "KP", name: "Korea, Democratic People's Republic of", dialCode: "+850", flag: "🇰🇵" },
5361
+ { code: "KR", name: "Korea, Republic of", dialCode: "+82", flag: "🇰🇷" },
5362
+ { code: "KW", name: "Kuwait", dialCode: "+965", flag: "🇰🇼" },
5363
+ { code: "KG", name: "Kyrgyzstan", dialCode: "+996", flag: "🇰🇬" },
5364
+ { code: "LA", name: "Lao People's Democratic Republic", dialCode: "+856", flag: "🇱🇦" },
5365
+ { code: "LV", name: "Latvia", dialCode: "+371", flag: "🇱🇻" },
5366
+ { code: "LB", name: "Lebanon", dialCode: "+961", flag: "🇱🇧" },
5367
+ { code: "LS", name: "Lesotho", dialCode: "+266", flag: "🇱🇸" },
5368
+ { code: "LR", name: "Liberia", dialCode: "+231", flag: "🇱🇷" },
5369
+ { code: "LY", name: "Libyan Arab Jamahiriya", dialCode: "+218", flag: "🇱🇾" },
5370
+ { code: "LI", name: "Liechtenstein", dialCode: "+423", flag: "🇱🇮" },
5371
+ { code: "LT", name: "Lithuania", dialCode: "+370", flag: "🇱🇹" },
5372
+ { code: "LU", name: "Luxembourg", dialCode: "+352", flag: "🇱🇺" },
5373
+ { code: "MO", name: "Macao", dialCode: "+853", flag: "🇲🇴" },
5374
+ { code: "MK", name: "Macedonia, the Former Yugoslav Republic of", dialCode: "+389", flag: "🇲🇰" },
5375
+ { code: "MG", name: "Madagascar", dialCode: "+261", flag: "🇲🇬" },
5376
+ { code: "MW", name: "Malawi", dialCode: "+265", flag: "🇲🇼" },
5377
+ { code: "MY", name: "Malaysia", dialCode: "+60", flag: "🇲🇾" },
5378
+ { code: "MV", name: "Maldives", dialCode: "+960", flag: "🇲🇻" },
5379
+ { code: "ML", name: "Mali", dialCode: "+223", flag: "🇲🇱" },
5380
+ { code: "MT", name: "Malta", dialCode: "+356", flag: "🇲🇹" },
5381
+ { code: "MH", name: "Marshall Islands", dialCode: "+692", flag: "🇲🇭" },
5382
+ { code: "MQ", name: "Martinique", dialCode: "+596", flag: "🇲🇶" },
5383
+ { code: "MR", name: "Mauritania", dialCode: "+222", flag: "🇲🇷" },
5384
+ { code: "MU", name: "Mauritius", dialCode: "+230", flag: "🇲🇺" },
5385
+ { code: "YT", name: "Mayotte", dialCode: "+262", flag: "🇾🇹" },
5386
+ { code: "MX", name: "Mexico", dialCode: "+52", flag: "🇲🇽" },
5387
+ { code: "FM", name: "Micronesia, Federated States of", dialCode: "+691", flag: "🇫🇲" },
5388
+ { code: "MD", name: "Moldova, Republic of", dialCode: "+373", flag: "🇲🇩" },
5389
+ { code: "MC", name: "Monaco", dialCode: "+377", flag: "🇲🇨" },
5390
+ { code: "MN", name: "Mongolia", dialCode: "+976", flag: "🇲🇳" },
5391
+ { code: "ME", name: "Montenegro", dialCode: "+382", flag: "🇲🇪" },
5392
+ { code: "MS", name: "Montserrat", dialCode: "+1664", flag: "🇲🇸" },
5393
+ { code: "MA", name: "Morocco", dialCode: "+212", flag: "🇲🇦" },
5394
+ { code: "MZ", name: "Mozambique", dialCode: "+258", flag: "🇲🇿" },
5395
+ { code: "MM", name: "Myanmar", dialCode: "+95", flag: "🇲🇲" },
5396
+ { code: "NA", name: "Namibia", dialCode: "+264", flag: "🇳🇦" },
5397
+ { code: "NR", name: "Nauru", dialCode: "+674", flag: "🇳🇷" },
5398
+ { code: "NP", name: "Nepal", dialCode: "+977", flag: "🇳🇵" },
5399
+ { code: "NL", name: "Netherlands", dialCode: "+31", flag: "🇳🇱" },
5400
+ { code: "NC", name: "New Caledonia", dialCode: "+687", flag: "🇳🇨" },
5401
+ { code: "NZ", name: "New Zealand", dialCode: "+64", flag: "🇳🇿" },
5402
+ { code: "NI", name: "Nicaragua", dialCode: "+505", flag: "🇳🇮" },
5403
+ { code: "NE", name: "Niger", dialCode: "+227", flag: "🇳🇪" },
5404
+ { code: "NG", name: "Nigeria", dialCode: "+234", flag: "🇳🇬" },
5405
+ { code: "NU", name: "Niue", dialCode: "+683", flag: "🇳🇺" },
5406
+ { code: "NF", name: "Norfolk Island", dialCode: "+672", flag: "🇳🇫" },
5407
+ { code: "MP", name: "Northern Mariana Islands", dialCode: "+1670", flag: "🇲🇵" },
5408
+ { code: "NO", name: "Norway", dialCode: "+47", flag: "🇳🇴" },
5409
+ { code: "OM", name: "Oman", dialCode: "+968", flag: "🇴🇲" },
5410
+ { code: "PK", name: "Pakistan", dialCode: "+92", flag: "🇵🇰" },
5411
+ { code: "PW", name: "Palau", dialCode: "+680", flag: "🇵🇼" },
5412
+ { code: "PS", name: "Palestinian Territory, Occupied", dialCode: "+970", flag: "🇵🇸" },
5413
+ { code: "PA", name: "Panama", dialCode: "+507", flag: "🇵🇦" },
5414
+ { code: "PG", name: "Papua New Guinea", dialCode: "+675", flag: "🇵🇬" },
5415
+ { code: "PY", name: "Paraguay", dialCode: "+595", flag: "🇵🇾" },
5416
+ { code: "PE", name: "Peru", dialCode: "+51", flag: "🇵🇪" },
5417
+ { code: "PH", name: "Philippines", dialCode: "+63", flag: "🇵🇭" },
5418
+ { code: "PN", name: "Pitcairn", dialCode: "+870", flag: "🇵🇳" },
5419
+ { code: "PL", name: "Poland", dialCode: "+48", flag: "🇵🇱" },
5420
+ { code: "PT", name: "Portugal", dialCode: "+351", flag: "🇵🇹" },
5421
+ { code: "PR", name: "Puerto Rico", dialCode: "+1939", flag: "🇵🇷" },
5422
+ { code: "QA", name: "Qatar", dialCode: "+974", flag: "🇶🇦" },
5423
+ { code: "RE", name: "Reunion", dialCode: "+262", flag: "🇷🇪" },
5424
+ { code: "RO", name: "Romania", dialCode: "+40", flag: "🇷🇴" },
5425
+ { code: "RU", name: "Russian Federation", dialCode: "+7", flag: "🇷🇺" },
5426
+ { code: "RW", name: "Rwanda", dialCode: "+250", flag: "🇷🇼" },
5427
+ { code: "BL", name: "Saint Barthelemy", dialCode: "+590", flag: "🇧🇱" },
5428
+ { code: "SH", name: "Saint Helena", dialCode: "+290", flag: "🇸🇭" },
5429
+ { code: "KN", name: "Saint Kitts and Nevis", dialCode: "+1869", flag: "🇰🇳" },
5430
+ { code: "LC", name: "Saint Lucia", dialCode: "+1758", flag: "🇱🇨" },
5431
+ { code: "MF", name: "Saint Martin", dialCode: "+590", flag: "🇲🇫" },
5432
+ { code: "PM", name: "Saint Pierre and Miquelon", dialCode: "+508", flag: "🇵🇲" },
5433
+ { code: "VC", name: "Saint Vincent and the Grenadines", dialCode: "+1784", flag: "🇻🇨" },
5434
+ { code: "WS", name: "Samoa", dialCode: "+685", flag: "🇼🇸" },
5435
+ { code: "SM", name: "San Marino", dialCode: "+378", flag: "🇸🇲" },
5436
+ { code: "ST", name: "Sao Tome and Principe", dialCode: "+239", flag: "🇸🇹" },
5437
+ { code: "SA", name: "Saudi Arabia", dialCode: "+966", flag: "🇸🇦" },
5438
+ { code: "SN", name: "Senegal", dialCode: "+221", flag: "🇸🇳" },
5439
+ { code: "RS", name: "Serbia", dialCode: "+381", flag: "🇷🇸" },
5440
+ { code: "SC", name: "Seychelles", dialCode: "+248", flag: "🇸🇨" },
5441
+ { code: "SL", name: "Sierra Leone", dialCode: "+232", flag: "🇸🇱" },
5442
+ { code: "SG", name: "Singapore", dialCode: "+65", flag: "🇸🇬" },
5443
+ { code: "SK", name: "Slovakia", dialCode: "+421", flag: "🇸🇰" },
5444
+ { code: "SI", name: "Slovenia", dialCode: "+386", flag: "🇸🇮" },
5445
+ { code: "SB", name: "Solomon Islands", dialCode: "+677", flag: "🇸🇧" },
5446
+ { code: "SO", name: "Somalia", dialCode: "+252", flag: "🇸🇴" },
5447
+ { code: "ZA", name: "South Africa", dialCode: "+27", flag: "🇿🇦" },
5448
+ { code: "GS", name: "South Georgia and the South Sandwich Islands", dialCode: "+500", flag: "🇬🇸" },
5449
+ { code: "ES", name: "Spain", dialCode: "+34", flag: "🇪🇸" },
5450
+ { code: "LK", name: "Sri Lanka", dialCode: "+94", flag: "🇱🇰" },
5451
+ { code: "SD", name: "Sudan", dialCode: "+249", flag: "🇸🇩" },
5452
+ { code: "SR", name: "Suriname", dialCode: "+597", flag: "🇸🇷" },
5453
+ { code: "SJ", name: "Svalbard and Jan Mayen", dialCode: "+47", flag: "🇸🇯" },
5454
+ { code: "SZ", name: "Swaziland", dialCode: "+268", flag: "🇸🇿" },
5455
+ { code: "SE", name: "Sweden", dialCode: "+46", flag: "🇸🇪" },
5456
+ { code: "CH", name: "Switzerland", dialCode: "+41", flag: "🇨🇭" },
5457
+ { code: "SY", name: "Syrian Arab Republic", dialCode: "+963", flag: "🇸🇾" },
5458
+ { code: "TW", name: "Taiwan, Province of China", dialCode: "+886", flag: "🇹🇼" },
5459
+ { code: "TJ", name: "Tajikistan", dialCode: "+992", flag: "🇹🇯" },
5460
+ { code: "TZ", name: "Tanzania, United Republic of", dialCode: "+255", flag: "🇹🇿" },
5461
+ { code: "TH", name: "Thailand", dialCode: "+66", flag: "🇹🇭" },
5462
+ { code: "TL", name: "Timor-Leste", dialCode: "+670", flag: "🇹🇱" },
5463
+ { code: "TG", name: "Togo", dialCode: "+228", flag: "🇹🇬" },
5464
+ { code: "TK", name: "Tokelau", dialCode: "+690", flag: "🇹🇰" },
5465
+ { code: "TO", name: "Tonga", dialCode: "+676", flag: "🇹🇴" },
5466
+ { code: "TT", name: "Trinidad and Tobago", dialCode: "+1868", flag: "🇹🇹" },
5467
+ { code: "TN", name: "Tunisia", dialCode: "+216", flag: "🇹🇳" },
5468
+ { code: "TR", name: "Turkey", dialCode: "+90", flag: "🇹🇷" },
5469
+ { code: "TM", name: "Turkmenistan", dialCode: "+993", flag: "🇹🇲" },
5470
+ { code: "TC", name: "Turks and Caicos Islands", dialCode: "+1649", flag: "🇹🇨" },
5471
+ { code: "TV", name: "Tuvalu", dialCode: "+688", flag: "🇹🇻" },
5472
+ { code: "UG", name: "Uganda", dialCode: "+256", flag: "🇺🇬" },
5473
+ { code: "UA", name: "Ukraine", dialCode: "+380", flag: "🇺🇦" },
5474
+ { code: "AE", name: "United Arab Emirates", dialCode: "+971", flag: "🇦🇪" },
5475
+ { code: "GB", name: "United Kingdom", dialCode: "+44", flag: "🇬🇧" },
5476
+ { code: "US", name: "United States", dialCode: "+1", flag: "🇺🇸" },
5477
+ { code: "UY", name: "Uruguay", dialCode: "+598", flag: "🇺🇾" },
5478
+ { code: "UZ", name: "Uzbekistan", dialCode: "+998", flag: "🇺🇿" },
5479
+ { code: "VU", name: "Vanuatu", dialCode: "+678", flag: "🇻🇺" },
5480
+ { code: "VE", name: "Venezuela", dialCode: "+58", flag: "🇻🇪" },
5481
+ { code: "VN", name: "Vietnam", dialCode: "+84", flag: "🇻🇳" },
5482
+ { code: "VG", name: "Virgin Islands, British", dialCode: "+1284", flag: "🇻🇬" },
5483
+ { code: "VI", name: "Virgin Islands, U.S.", dialCode: "+1340", flag: "🇻🇮" },
5484
+ { code: "WF", name: "Wallis and Futuna", dialCode: "+681", flag: "🇼🇫" },
5485
+ { code: "EH", name: "Western Sahara", dialCode: "+212", flag: "🇪🇭" },
5486
+ { code: "YE", name: "Yemen", dialCode: "+967", flag: "🇾🇪" },
5487
+ { code: "ZM", name: "Zambia", dialCode: "+260", flag: "🇿🇲" },
5488
+ { code: "ZW", name: "Zimbabwe", dialCode: "+263", flag: "🇿🇼" }
5489
+ ];
5490
+ const _hoisted_1$k = { class: "ina-phone-input" };
5491
+ const _hoisted_2$j = ["for"];
5492
+ const _hoisted_3$h = {
5160
5493
  key: 0,
5161
- class: "ina-phone-input__required"
5494
+ class: "ina-phone-input__asterisk"
5162
5495
  };
5163
- const _hoisted_3$h = { class: "ina-phone-input__wrapper" };
5164
- const _hoisted_4$d = { class: "ina-phone-input__country-selector" };
5496
+ const _hoisted_4$d = ["disabled"];
5165
5497
  const _hoisted_5$b = { class: "ina-phone-input__country-flag" };
5166
5498
  const _hoisted_6$9 = { class: "ina-phone-input__country-code" };
5167
5499
  const _hoisted_7$9 = {
@@ -5184,33 +5516,20 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
5184
5516
  size: { default: "md" },
5185
5517
  status: { default: "neutral" },
5186
5518
  statusMessage: {},
5519
+ helperText: {},
5187
5520
  disabled: { type: Boolean, default: false },
5188
5521
  readonly: { type: Boolean, default: false },
5189
5522
  required: { type: Boolean, default: false },
5190
5523
  defaultCountry: { default: "ID" },
5191
- countries: { default: () => [
5192
- { code: "ID", name: "Indonesia", dialCode: "+62", flag: "🇮🇩" },
5193
- { code: "US", name: "United States", dialCode: "+1", flag: "🇺🇸" },
5194
- { code: "SG", name: "Singapore", dialCode: "+65", flag: "🇸🇬" },
5195
- { code: "MY", name: "Malaysia", dialCode: "+60", flag: "🇲🇾" },
5196
- { code: "TH", name: "Thailand", dialCode: "+66", flag: "🇹🇭" },
5197
- { code: "PH", name: "Philippines", dialCode: "+63", flag: "🇵🇭" },
5198
- { code: "VN", name: "Vietnam", dialCode: "+84", flag: "🇻🇳" },
5199
- { code: "AU", name: "Australia", dialCode: "+61", flag: "🇦🇺" },
5200
- { code: "GB", name: "United Kingdom", dialCode: "+44", flag: "🇬🇧" },
5201
- { code: "DE", name: "Germany", dialCode: "+49", flag: "🇩🇪" },
5202
- { code: "FR", name: "France", dialCode: "+33", flag: "🇫🇷" },
5203
- { code: "JP", name: "Japan", dialCode: "+81", flag: "🇯🇵" },
5204
- { code: "KR", name: "South Korea", dialCode: "+82", flag: "🇰🇷" },
5205
- { code: "CN", name: "China", dialCode: "+86", flag: "🇨🇳" },
5206
- { code: "IN", name: "India", dialCode: "+91", flag: "🇮🇳" }
5207
- ] }
5524
+ countries: { default: () => COUNTRIES }
5208
5525
  },
5209
5526
  emits: ["update:modelValue", "input", "blur", "focus", "countryChange"],
5210
5527
  setup(__props, { emit: __emit }) {
5211
5528
  const props = __props;
5212
5529
  const emit = __emit;
5213
5530
  const inputRef = ref();
5531
+ const searchInputRef = ref();
5532
+ const dropdownRef = ref();
5214
5533
  const phoneNumber = ref(props.modelValue);
5215
5534
  const isCountryDropdownOpen = ref(false);
5216
5535
  const countrySearch = ref("");
@@ -5220,34 +5539,27 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
5220
5539
  const inputId = computed(
5221
5540
  () => `phone-input-${Math.random().toString(36).substr(2, 9)}`
5222
5541
  );
5223
- const containerClasses = computed(() => {
5224
- const classes = ["ina-phone-input"];
5225
- if (props.disabled) {
5226
- classes.push("ina-phone-input--disabled");
5227
- }
5228
- return classes;
5229
- });
5230
- const inputClasses = computed(() => {
5231
- const classes = ["ina-phone-input__input"];
5232
- classes.push(`ina-phone-input__input--size-${props.size}`);
5542
+ const wrapperClasses = computed(() => {
5543
+ const classes = ["ina-phone-input__wrapper"];
5544
+ classes.push(`ina-phone-input__wrapper--size-${props.size}`);
5233
5545
  if (props.disabled) {
5234
- classes.push("ina-phone-input__input--disabled");
5235
- }
5236
- if (props.readonly) {
5237
- classes.push("ina-phone-input__input--readonly");
5546
+ classes.push("ina-phone-input__wrapper--disabled");
5238
5547
  }
5239
5548
  if (props.status !== "neutral") {
5240
- classes.push(`ina-phone-input__input--status-${props.status}`);
5549
+ classes.push(`ina-phone-input__wrapper--status-${props.status}`);
5241
5550
  }
5242
5551
  return classes;
5243
5552
  });
5244
- const statusClasses = computed(() => {
5245
- const classes = ["ina-phone-input__status"];
5246
- if (props.status !== "neutral") {
5247
- classes.push(`ina-phone-input__status--${props.status}`);
5553
+ const helperTextClasses = computed(() => {
5554
+ const classes = ["ina-phone-input__helper-text"];
5555
+ if (props.status === "error") {
5556
+ classes.push("ina-phone-input__helper-text--error");
5557
+ } else if (props.status === "warning") {
5558
+ classes.push("ina-phone-input__helper-text--warning");
5248
5559
  }
5249
5560
  return classes;
5250
5561
  });
5562
+ const bottomText = computed(() => props.statusMessage || props.helperText);
5251
5563
  const filteredCountries = computed(() => {
5252
5564
  if (!countrySearch.value) {
5253
5565
  return props.countries;
@@ -5270,26 +5582,35 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
5270
5582
  if (isCountryDropdownOpen.value) {
5271
5583
  countrySearch.value = "";
5272
5584
  nextTick(() => {
5273
- const searchInput = document.querySelector(
5274
- ".ina-phone-input__country-search-input"
5275
- );
5276
- searchInput == null ? void 0 : searchInput.focus();
5585
+ var _a;
5586
+ (_a = searchInputRef.value) == null ? void 0 : _a.focus();
5277
5587
  });
5278
5588
  }
5279
5589
  };
5280
- const selectCountry = (country) => {
5281
- selectedCountry.value = country;
5282
- isCountryDropdownOpen.value = false;
5283
- emit("countryChange", country);
5284
- nextTick(() => {
5285
- var _a;
5286
- (_a = inputRef.value) == null ? void 0 : _a.focus();
5287
- });
5590
+ const formatPhoneNumber = (value) => {
5591
+ const clean = value.replace(/\D/g, "");
5592
+ if (clean.length > 7) {
5593
+ return clean.replace(/^(\d{3})(\d{4})(.*)/, "$1-$2-$3");
5594
+ } else if (clean.length > 3) {
5595
+ return clean.replace(/^(\d{3})(.*)/, "$1-$2");
5596
+ }
5597
+ return clean;
5288
5598
  };
5289
5599
  const handleInput = (event) => {
5290
5600
  const target = event.target;
5291
- phoneNumber.value = target.value;
5292
- emit("update:modelValue", phoneNumber.value);
5601
+ const rawValue = target.value;
5602
+ let cleanValue = rawValue.replace(/\D/g, "");
5603
+ if (cleanValue.startsWith("0")) {
5604
+ cleanValue = cleanValue.substring(1);
5605
+ }
5606
+ const displayClean = rawValue.replace(/\D/g, "");
5607
+ const formatted = formatPhoneNumber(displayClean);
5608
+ if (formatted !== rawValue) {
5609
+ target.value = formatted;
5610
+ }
5611
+ phoneNumber.value = formatted;
5612
+ const fullValue = `${selectedCountry.value.dialCode}${cleanValue}`;
5613
+ emit("update:modelValue", fullValue);
5293
5614
  emit("input", event);
5294
5615
  };
5295
5616
  const handleBlur = (event) => {
@@ -5300,15 +5621,42 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
5300
5621
  };
5301
5622
  const handleClickOutside = (event) => {
5302
5623
  const target = event.target;
5303
- if (!target.closest(".ina-phone-input__country-selector")) {
5624
+ if (dropdownRef.value && !dropdownRef.value.contains(target)) {
5304
5625
  isCountryDropdownOpen.value = false;
5305
5626
  }
5306
5627
  };
5628
+ const selectCountry = (country) => {
5629
+ selectedCountry.value = country;
5630
+ isCountryDropdownOpen.value = false;
5631
+ emit("countryChange", country);
5632
+ if (phoneNumber.value) {
5633
+ const cleanValue = phoneNumber.value.replace(/\D/g, "");
5634
+ const cleanLocal = cleanValue.startsWith("0") ? cleanValue.substring(1) : cleanValue;
5635
+ const fullValue = `${country.dialCode}${cleanLocal}`;
5636
+ emit("update:modelValue", fullValue);
5637
+ }
5638
+ nextTick(() => {
5639
+ var _a;
5640
+ (_a = inputRef.value) == null ? void 0 : _a.focus();
5641
+ });
5642
+ };
5307
5643
  watch(
5308
5644
  () => props.modelValue,
5309
5645
  (newValue) => {
5310
- phoneNumber.value = newValue || "";
5311
- }
5646
+ if (!newValue) {
5647
+ phoneNumber.value = "";
5648
+ return;
5649
+ }
5650
+ const dialCode = selectedCountry.value.dialCode;
5651
+ let localPart = newValue;
5652
+ if (newValue.startsWith(dialCode)) {
5653
+ localPart = newValue.substring(dialCode.length);
5654
+ } else if (newValue.startsWith(dialCode.substring(1))) {
5655
+ localPart = newValue.substring(dialCode.length - 1);
5656
+ }
5657
+ phoneNumber.value = formatPhoneNumber(localPart);
5658
+ },
5659
+ { immediate: true }
5312
5660
  );
5313
5661
  onMounted(() => {
5314
5662
  document.addEventListener("click", handleClickOutside);
@@ -5317,23 +5665,28 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
5317
5665
  document.removeEventListener("click", handleClickOutside);
5318
5666
  });
5319
5667
  return (_ctx, _cache) => {
5320
- return openBlock(), createElementBlock("div", {
5321
- class: normalizeClass(["ina-phone-input", containerClasses.value])
5322
- }, [
5668
+ return openBlock(), createElementBlock("div", _hoisted_1$k, [
5323
5669
  __props.label ? (openBlock(), createElementBlock("label", {
5324
5670
  key: 0,
5325
5671
  for: inputId.value,
5326
5672
  class: "ina-phone-input__label"
5327
5673
  }, [
5328
5674
  createTextVNode(toDisplayString(__props.label) + " ", 1),
5329
- __props.required ? (openBlock(), createElementBlock("span", _hoisted_2$j, "*")) : createCommentVNode("", true)
5330
- ], 8, _hoisted_1$k)) : createCommentVNode("", true),
5331
- createElementVNode("div", _hoisted_3$h, [
5332
- createElementVNode("div", _hoisted_4$d, [
5675
+ __props.required ? (openBlock(), createElementBlock("span", _hoisted_3$h, "*")) : createCommentVNode("", true)
5676
+ ], 8, _hoisted_2$j)) : createCommentVNode("", true),
5677
+ createElementVNode("div", {
5678
+ class: normalizeClass(wrapperClasses.value)
5679
+ }, [
5680
+ createElementVNode("div", {
5681
+ class: "ina-phone-input__country-selector",
5682
+ ref_key: "dropdownRef",
5683
+ ref: dropdownRef
5684
+ }, [
5333
5685
  createElementVNode("button", {
5334
5686
  type: "button",
5335
5687
  class: "ina-phone-input__country-button",
5336
- onClick: toggleCountryDropdown
5688
+ onClick: toggleCountryDropdown,
5689
+ disabled: __props.disabled || __props.readonly
5337
5690
  }, [
5338
5691
  createElementVNode("span", _hoisted_5$b, toDisplayString(selectedCountry.value.flag), 1),
5339
5692
  createElementVNode("span", _hoisted_6$9, toDisplayString(selectedCountry.value.dialCode), 1),
@@ -5355,13 +5708,15 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
5355
5708
  "stroke-linejoin": "round"
5356
5709
  }, null, -1)
5357
5710
  ])], 2))
5358
- ]),
5711
+ ], 8, _hoisted_4$d),
5359
5712
  createVNode(Transition, { name: "dropdown" }, {
5360
5713
  default: withCtx(() => [
5361
5714
  isCountryDropdownOpen.value ? (openBlock(), createElementBlock("div", _hoisted_7$9, [
5362
5715
  createElementVNode("div", _hoisted_8$7, [
5363
5716
  withDirectives(createElementVNode("input", {
5364
5717
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => countrySearch.value = $event),
5718
+ ref_key: "searchInputRef",
5719
+ ref: searchInputRef,
5365
5720
  type: "text",
5366
5721
  placeholder: "Search countries...",
5367
5722
  class: "ina-phone-input__country-search-input"
@@ -5387,8 +5742,9 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
5387
5742
  ]),
5388
5743
  _: 1
5389
5744
  })
5390
- ]),
5391
- withDirectives(createElementVNode("input", mergeProps({
5745
+ ], 512),
5746
+ _cache[3] || (_cache[3] = createElementVNode("div", { class: "ina-phone-input__divider" }, null, -1)),
5747
+ withDirectives(createElementVNode("input", mergeProps(_ctx.$attrs, {
5392
5748
  id: inputId.value,
5393
5749
  ref_key: "inputRef",
5394
5750
  ref: inputRef,
@@ -5397,23 +5753,23 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
5397
5753
  placeholder: __props.placeholder,
5398
5754
  disabled: __props.disabled,
5399
5755
  readonly: __props.readonly,
5400
- class: inputClasses.value,
5756
+ class: "ina-phone-input__input",
5401
5757
  onInput: handleInput,
5402
5758
  onBlur: handleBlur,
5403
5759
  onFocus: handleFocus
5404
- }, _ctx.$attrs), null, 16, _hoisted_14$3), [
5760
+ }), null, 16, _hoisted_14$3), [
5405
5761
  [vModelText, phoneNumber.value]
5406
5762
  ])
5407
- ]),
5408
- __props.statusMessage ? (openBlock(), createElementBlock("div", {
5763
+ ], 2),
5764
+ bottomText.value ? (openBlock(), createElementBlock("div", {
5409
5765
  key: 1,
5410
- class: normalizeClass(statusClasses.value)
5411
- }, toDisplayString(__props.statusMessage), 3)) : createCommentVNode("", true)
5412
- ], 2);
5766
+ class: normalizeClass(helperTextClasses.value)
5767
+ }, toDisplayString(bottomText.value), 3)) : createCommentVNode("", true)
5768
+ ]);
5413
5769
  };
5414
5770
  }
5415
5771
  });
5416
- const PhoneInput = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-005a7f02"]]);
5772
+ const PhoneInput = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-fc52068c"]]);
5417
5773
  const _hoisted_1$j = {
5418
5774
  key: 0,
5419
5775
  class: "ina-progress-bar__shimmer"
@@ -8703,14 +9059,14 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
8703
9059
  class: normalizeClass(searchContainerClasses.value)
8704
9060
  }, [
8705
9061
  createElementVNode("div", _hoisted_1$9, [
8706
- createVNode(_sfc_main$B, {
9062
+ createVNode(_sfc_main$C, {
8707
9063
  modelValue: searchInput.value,
8708
9064
  placeholder: props.searchPlaceholder || props.placeholderSearch || "Input pencarian",
8709
9065
  disabled: loading.value,
8710
9066
  "onUpdate:modelValue": handleSearchChange,
8711
9067
  onKeydown: handleSearchKeyDown
8712
9068
  }, null, 8, ["modelValue", "placeholder", "disabled"]),
8713
- createVNode(_sfc_main$F, {
9069
+ createVNode(_sfc_main$G, {
8714
9070
  disabled: loading.value,
8715
9071
  onClick: handleSearchButton
8716
9072
  }, {
@@ -8737,7 +9093,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
8737
9093
  }, [
8738
9094
  createElementVNode("tr", null, [
8739
9095
  __props.selectable ? (openBlock(), createElementBlock("th", _hoisted_2$9, [
8740
- createVNode(_sfc_main$C, {
9096
+ createVNode(_sfc_main$D, {
8741
9097
  id: `${reactId.value}-select-all`,
8742
9098
  label: "",
8743
9099
  modelValue: allSelected.value,
@@ -8819,7 +9175,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
8819
9175
  onClick: (e) => handleRowClick(row, e)
8820
9176
  }, [
8821
9177
  __props.selectable ? (openBlock(), createElementBlock("td", _hoisted_10$2, [
8822
- createVNode(_sfc_main$C, {
9178
+ createVNode(_sfc_main$D, {
8823
9179
  id: `${reactId.value}-select-${String(row[__props.rowKey])}`,
8824
9180
  label: "",
8825
9181
  modelValue: selectedMap.value[String(row[__props.rowKey])] || false,
@@ -10194,7 +10550,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
10194
10550
  const defaultFooterActions = (cancelClassName, confirmClassName, cancelText, confirmText, handleCloseFn) => {
10195
10551
  return h("div", { class: "ina-modal-confirmation__footer" }, [
10196
10552
  h(
10197
- _sfc_main$F,
10553
+ _sfc_main$G,
10198
10554
  {
10199
10555
  hierarchy: "custom",
10200
10556
  size: "sm",
@@ -10204,7 +10560,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
10204
10560
  { default: () => cancelText }
10205
10561
  ),
10206
10562
  h(
10207
- _sfc_main$F,
10563
+ _sfc_main$G,
10208
10564
  {
10209
10565
  hierarchy: "custom",
10210
10566
  size: "sm",
@@ -11009,20 +11365,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
11009
11365
  }
11010
11366
  });
11011
11367
  const index = {
11012
- Accordion: _sfc_main$O,
11368
+ Accordion: _sfc_main$P,
11013
11369
  AccordionCard,
11014
11370
  AccordionGroup,
11015
11371
  ActionDropdown,
11016
- Alert: _sfc_main$K,
11017
- Avatar: _sfc_main$J,
11018
- Badge: _sfc_main$I,
11019
- BottomSheet: _sfc_main$H,
11020
- Breadcrumb: _sfc_main$G,
11021
- Button: _sfc_main$F,
11022
- ButtonGroup: _sfc_main$E,
11023
- Card: _sfc_main$D,
11024
- Checkbox: _sfc_main$C,
11025
- Chip: _sfc_main$A,
11372
+ Alert: _sfc_main$L,
11373
+ Avatar: _sfc_main$K,
11374
+ Badge: _sfc_main$J,
11375
+ BottomSheet: _sfc_main$I,
11376
+ Breadcrumb: _sfc_main$H,
11377
+ Button: _sfc_main$G,
11378
+ ButtonGroup: _sfc_main$F,
11379
+ Card: _sfc_main$E,
11380
+ CircleProgressBar: _sfc_main$A,
11381
+ Checkbox: _sfc_main$D,
11382
+ Chip: _sfc_main$B,
11026
11383
  Collapse,
11027
11384
  Divider: _sfc_main$y,
11028
11385
  Drawer,
@@ -11049,7 +11406,7 @@ const index = {
11049
11406
  Table: _sfc_main$a,
11050
11407
  TableProgressBar: _sfc_main$b,
11051
11408
  TextArea: _sfc_main$9,
11052
- TextField: _sfc_main$B,
11409
+ TextField: _sfc_main$C,
11053
11410
  OneTimePassword: _sfc_main$8,
11054
11411
  ThemeToggle: _sfc_main$7,
11055
11412
  TimePicker: _sfc_main$6,
@@ -11062,20 +11419,21 @@ const index = {
11062
11419
  setBrandTheme
11063
11420
  };
11064
11421
  export {
11065
- _sfc_main$O as Accordion,
11422
+ _sfc_main$P as Accordion,
11066
11423
  AccordionCard,
11067
11424
  AccordionGroup,
11068
11425
  ActionDropdown,
11069
- _sfc_main$K as Alert,
11070
- _sfc_main$J as Avatar,
11071
- _sfc_main$I as Badge,
11072
- _sfc_main$H as BottomSheet,
11073
- _sfc_main$G as Breadcrumb,
11074
- _sfc_main$F as Button,
11075
- _sfc_main$E as ButtonGroup,
11076
- _sfc_main$D as Card,
11077
- _sfc_main$C as Checkbox,
11078
- _sfc_main$A as Chip,
11426
+ _sfc_main$L as Alert,
11427
+ _sfc_main$K as Avatar,
11428
+ _sfc_main$J as Badge,
11429
+ _sfc_main$I as BottomSheet,
11430
+ _sfc_main$H as Breadcrumb,
11431
+ _sfc_main$G as Button,
11432
+ _sfc_main$F as ButtonGroup,
11433
+ _sfc_main$E as Card,
11434
+ _sfc_main$D as Checkbox,
11435
+ _sfc_main$B as Chip,
11436
+ _sfc_main$A as CircleProgressBar,
11079
11437
  Collapse,
11080
11438
  ConfirmationContextKey,
11081
11439
  _sfc_main$3 as ConfirmationProvider,
@@ -11106,7 +11464,7 @@ export {
11106
11464
  _sfc_main$a as Table,
11107
11465
  _sfc_main$b as TableProgressBar,
11108
11466
  _sfc_main$9 as TextArea,
11109
- _sfc_main$B as TextField,
11467
+ _sfc_main$C as TextField,
11110
11468
  _sfc_main$7 as ThemeToggle,
11111
11469
  _sfc_main$6 as TimePicker,
11112
11470
  _sfc_main$5 as Toast,