@stachelock/ui 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/{CalendarHeader.vue_vue_type_script_setup_true_lang-B3KQTxfD.js → CalendarHeader.vue_vue_type_script_setup_true_lang-Cirr0hMB.js} +2 -2
  2. package/dist/{CalendarHeader.vue_vue_type_script_setup_true_lang-B3KQTxfD.js.map → CalendarHeader.vue_vue_type_script_setup_true_lang-Cirr0hMB.js.map} +1 -1
  3. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-2dJNxQUF.js +1300 -0
  4. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-2dJNxQUF.js.map +1 -0
  5. package/dist/{DashboardLayout.vue_vue_type_script_setup_true_lang-CClxYrOW.js → DashboardLayout.vue_vue_type_script_setup_true_lang-VeZhdPhj.js} +38 -37
  6. package/dist/DashboardLayout.vue_vue_type_script_setup_true_lang-VeZhdPhj.js.map +1 -0
  7. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-BpfPAZiT.js +217 -0
  8. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-BpfPAZiT.js.map +1 -0
  9. package/dist/{DynamicFormField.vue_vue_type_script_setup_true_lang-qAwVNm--.js → DynamicFormField.vue_vue_type_script_setup_true_lang-DvT03FIS.js} +40 -24
  10. package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-DvT03FIS.js.map +1 -0
  11. package/dist/EventCard.vue_vue_type_script_setup_true_lang-YV1lfgUY.js +157 -0
  12. package/dist/EventCard.vue_vue_type_script_setup_true_lang-YV1lfgUY.js.map +1 -0
  13. package/dist/EventsList.vue_vue_type_script_setup_true_lang-Cn_WOpZi.js +103 -0
  14. package/dist/EventsList.vue_vue_type_script_setup_true_lang-Cn_WOpZi.js.map +1 -0
  15. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-BPjHLHdM.js +522 -0
  16. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-BPjHLHdM.js.map +1 -0
  17. package/dist/{SidebarLayout.vue_vue_type_script_setup_true_lang-CQIW5dy_.js → SidebarLayout.vue_vue_type_script_setup_true_lang-J1nfUTdM.js} +28 -27
  18. package/dist/{SidebarLayout.vue_vue_type_script_setup_true_lang-CQIW5dy_.js.map → SidebarLayout.vue_vue_type_script_setup_true_lang-J1nfUTdM.js.map} +1 -1
  19. package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-BFr2SByh.js +273 -0
  20. package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-BFr2SByh.js.map +1 -0
  21. package/dist/{TagifyInput.vue_vue_type_script_setup_true_lang-RHqhKoK5.js → TagifyInput.vue_vue_type_script_setup_true_lang-DRR6jt_8.js} +60 -50
  22. package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-DRR6jt_8.js.map +1 -0
  23. package/dist/UiBreadcrumb.vue_vue_type_script_setup_true_lang-quGuN9v4.js +82 -0
  24. package/dist/UiBreadcrumb.vue_vue_type_script_setup_true_lang-quGuN9v4.js.map +1 -0
  25. package/dist/{UiModal.vue_vue_type_script_setup_true_lang-CMk62qeq.js → UiModal.vue_vue_type_script_setup_true_lang-SAo39zpS.js} +21 -20
  26. package/dist/{UiModal.vue_vue_type_script_setup_true_lang-CMk62qeq.js.map → UiModal.vue_vue_type_script_setup_true_lang-SAo39zpS.js.map} +1 -1
  27. package/dist/XMarkIcon-C4wILUsz.js +40 -0
  28. package/dist/XMarkIcon-C4wILUsz.js.map +1 -0
  29. package/dist/calculate-active-index-CksdUwZY.js +87 -0
  30. package/dist/calculate-active-index-CksdUwZY.js.map +1 -0
  31. package/dist/calendars/CalendarDashboard.js +2 -2
  32. package/dist/calendars/CalendarHeader.js +1 -1
  33. package/dist/calendars/EventCard.js +1 -1
  34. package/dist/calendars/EventsList.js +1 -1
  35. package/dist/components/Breadcrumb.js +1 -1
  36. package/dist/components/Modal.js +1 -1
  37. package/dist/components/RadialProgressBar.d.ts +2 -2
  38. package/dist/components/RadialProgressBar.js +1 -1
  39. package/dist/description-CBd3BJ9O.js +30 -0
  40. package/dist/description-CBd3BJ9O.js.map +1 -0
  41. package/dist/dialog-U1KNiPzc.js +493 -0
  42. package/dist/dialog-U1KNiPzc.js.map +1 -0
  43. package/dist/form-DQKuKVqJ.js +51 -0
  44. package/dist/form-DQKuKVqJ.js.map +1 -0
  45. package/dist/forms/DynamicForm.js +1 -1
  46. package/dist/forms/DynamicFormField.js +1 -1
  47. package/dist/forms/FormFieldWrapper.js +71 -42
  48. package/dist/forms/FormFieldWrapper.js.map +1 -1
  49. package/dist/index.js +307 -242
  50. package/dist/index.js.map +1 -1
  51. package/dist/inputs/ComboboxInput.js +1 -1
  52. package/dist/inputs/SelectInput.js +1 -1
  53. package/dist/inputs/SwitchInput.js +1 -1
  54. package/dist/inputs/TagifyInput.js +1 -1
  55. package/dist/keyboard-DJD8TwH4.js +113 -0
  56. package/dist/keyboard-DJD8TwH4.js.map +1 -0
  57. package/dist/layouts/DashboardLayout.js +1 -1
  58. package/dist/layouts/SidebarLayout.js +1 -1
  59. package/dist/open-closed-DgcU-HDT.js +179 -0
  60. package/dist/open-closed-DgcU-HDT.js.map +1 -0
  61. package/dist/src/components/layouts/DashboardLayout.d.ts.map +1 -1
  62. package/dist/src/components/layouts/SidebarLayout.d.ts.map +1 -1
  63. package/dist/transition-CuxxW9dY.js +209 -0
  64. package/dist/transition-CuxxW9dY.js.map +1 -0
  65. package/package.json +1 -1
  66. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-DoJHjJsA.js +0 -304
  67. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-DoJHjJsA.js.map +0 -1
  68. package/dist/DashboardLayout.vue_vue_type_script_setup_true_lang-CClxYrOW.js.map +0 -1
  69. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-BKhcXkNG.js +0 -201
  70. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-BKhcXkNG.js.map +0 -1
  71. package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-qAwVNm--.js.map +0 -1
  72. package/dist/EventCard.vue_vue_type_script_setup_true_lang-B3TP-mWX.js +0 -75
  73. package/dist/EventCard.vue_vue_type_script_setup_true_lang-B3TP-mWX.js.map +0 -1
  74. package/dist/EventsList.vue_vue_type_script_setup_true_lang-Cpc9A9Ev.js +0 -89
  75. package/dist/EventsList.vue_vue_type_script_setup_true_lang-Cpc9A9Ev.js.map +0 -1
  76. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-BguP8xMU.js +0 -242
  77. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-BguP8xMU.js.map +0 -1
  78. package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-BagTQ6M0.js +0 -197
  79. package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-BagTQ6M0.js.map +0 -1
  80. package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-RHqhKoK5.js.map +0 -1
  81. package/dist/UiBreadcrumb.vue_vue_type_script_setup_true_lang-CMH47CoK.js +0 -68
  82. package/dist/UiBreadcrumb.vue_vue_type_script_setup_true_lang-CMH47CoK.js.map +0 -1
  83. package/dist/UiRadialProgressBar.vue_vue_type_script_setup_true_lang-BGCBJa2S.js +0 -72
  84. package/dist/UiRadialProgressBar.vue_vue_type_script_setup_true_lang-BGCBJa2S.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchInput.vue_vue_type_script_setup_true_lang-BFr2SByh.js","sources":["../node_modules/@headlessui/vue/dist/components/label/label.js","../node_modules/@headlessui/vue/dist/components/switch/switch.js","../src/components/inputs/SwitchInput.vue"],"sourcesContent":["import{computed as v,defineComponent as x,inject as L,onMounted as k,onUnmounted as C,provide as j,ref as y,unref as h}from\"vue\";import{useId as w}from'../../hooks/use-id.js';import{render as R}from'../../utils/render.js';let a=Symbol(\"LabelContext\");function d(){let t=L(a,null);if(t===null){let n=new Error(\"You used a <Label /> component, but it is not inside a parent.\");throw Error.captureStackTrace&&Error.captureStackTrace(n,d),n}return t}function E({slot:t={},name:n=\"Label\",props:i={}}={}){let e=y([]);function o(r){return e.value.push(r),()=>{let l=e.value.indexOf(r);l!==-1&&e.value.splice(l,1)}}return j(a,{register:o,slot:t,name:n,props:i}),v(()=>e.value.length>0?e.value.join(\" \"):void 0)}let K=x({name:\"Label\",props:{as:{type:[Object,String],default:\"label\"},passive:{type:[Boolean],default:!1},id:{type:String,default:null}},setup(t,{slots:n,attrs:i}){var r;let e=(r=t.id)!=null?r:`headlessui-label-${w()}`,o=d();return k(()=>C(o.register(e))),()=>{let{name:l=\"Label\",slot:p={},props:c={}}=o,{passive:f,...s}=t,u={...Object.entries(c).reduce((b,[g,m])=>Object.assign(b,{[g]:h(m)}),{}),id:e};return f&&(delete u.onClick,delete u.htmlFor,delete s.onClick),R({ourProps:u,theirProps:s,slot:p,attrs:i,slots:n,name:l})}}});export{K as Label,E as useLabels};\n","import{computed as u,defineComponent as v,Fragment as H,h as S,inject as M,onMounted as I,provide as P,ref as w,watch as j}from\"vue\";import{useControllable as G}from'../../hooks/use-controllable.js';import{useId as V}from'../../hooks/use-id.js';import{useResolveButtonType as F}from'../../hooks/use-resolve-button-type.js';import{Features as O,Hidden as A}from'../../internal/hidden.js';import{Keys as g}from'../../keyboard.js';import{dom as N}from'../../utils/dom.js';import{attemptSubmit as $}from'../../utils/form.js';import{compact as U,omit as _,render as k}from'../../utils/render.js';import{Description as q,useDescriptions as z}from'../description/description.js';import{Label as J,useLabels as Q}from'../label/label.js';let C=Symbol(\"GroupContext\"),oe=v({name:\"SwitchGroup\",props:{as:{type:[Object,String],default:\"template\"}},setup(l,{slots:c,attrs:i}){let r=w(null),f=Q({name:\"SwitchLabel\",props:{htmlFor:u(()=>{var t;return(t=r.value)==null?void 0:t.id}),onClick(t){r.value&&(t.currentTarget.tagName===\"LABEL\"&&t.preventDefault(),r.value.click(),r.value.focus({preventScroll:!0}))}}}),p=z({name:\"SwitchDescription\"});return P(C,{switchRef:r,labelledby:f,describedby:p}),()=>k({theirProps:l,ourProps:{},slot:{},slots:c,attrs:i,name:\"SwitchGroup\"})}}),ue=v({name:\"Switch\",emits:{\"update:modelValue\":l=>!0},props:{as:{type:[Object,String],default:\"button\"},modelValue:{type:Boolean,default:void 0},defaultChecked:{type:Boolean,optional:!0},form:{type:String,optional:!0},name:{type:String,optional:!0},value:{type:String,optional:!0},id:{type:String,default:null},disabled:{type:Boolean,default:!1},tabIndex:{type:Number,default:0}},inheritAttrs:!1,setup(l,{emit:c,attrs:i,slots:r,expose:f}){var h;let p=(h=l.id)!=null?h:`headlessui-switch-${V()}`,n=M(C,null),[t,s]=G(u(()=>l.modelValue),e=>c(\"update:modelValue\",e),u(()=>l.defaultChecked));function m(){s(!t.value)}let E=w(null),o=n===null?E:n.switchRef,L=F(u(()=>({as:l.as,type:i.type})),o);f({el:o,$el:o});function D(e){e.preventDefault(),m()}function R(e){e.key===g.Space?(e.preventDefault(),m()):e.key===g.Enter&&$(e.currentTarget)}function x(e){e.preventDefault()}let d=u(()=>{var e,a;return(a=(e=N(o))==null?void 0:e.closest)==null?void 0:a.call(e,\"form\")});return I(()=>{j([d],()=>{if(!d.value||l.defaultChecked===void 0)return;function e(){s(l.defaultChecked)}return d.value.addEventListener(\"reset\",e),()=>{var a;(a=d.value)==null||a.removeEventListener(\"reset\",e)}},{immediate:!0})}),()=>{let{name:e,value:a,form:K,tabIndex:y,...b}=l,T={checked:t.value},B={id:p,ref:o,role:\"switch\",type:L.value,tabIndex:y===-1?0:y,\"aria-checked\":t.value,\"aria-labelledby\":n==null?void 0:n.labelledby.value,\"aria-describedby\":n==null?void 0:n.describedby.value,onClick:D,onKeyup:R,onKeypress:x};return S(H,[e!=null&&t.value!=null?S(A,U({features:O.Hidden,as:\"input\",type:\"checkbox\",hidden:!0,readOnly:!0,checked:t.value,form:K,disabled:b.disabled,name:e,value:a})):null,k({ourProps:B,theirProps:{...i,..._(b,[\"modelValue\",\"defaultChecked\"])},slot:T,attrs:i,slots:r,name:\"Switch\"})])}}}),de=J,ce=q;export{ue as Switch,ce as SwitchDescription,oe as SwitchGroup,de as SwitchLabel};\n","<template>\n <div class=\"sl-w-full\">\n <FormFieldWrapper\n :id=\"id\"\n :name=\"name\"\n :label=\"layout === 'stacked' && !hideMainLabel ? label : ''\"\n :disabled=\"disabled\"\n :optional=\"!rules\"\n :tertiary-label=\"tertiaryLabel\"\n :box-shadow=\"boxShadow\"\n :error-message=\"errorMessage\"\n :success-message=\"successMessage\"\n :is-valid=\"meta.valid\"\n :is-touched=\"meta.touched\"\n :show-errors=\"showErrors\"\n >\n <div class=\"sl-flex sl-items-center sl-justify-between sl-gap-4\">\n <div v-if=\"layout === 'inline'\" class=\"sl-flex-1\">\n <label\n v-if=\"label && !hideMainLabel\"\n :for=\"id\"\n class=\"sl-block sl-text-sm sl-font-medium sl-text-gray-900 sl-cursor-pointer\"\n >\n {{ label }}\n </label>\n <div v-if=\"description\" class=\"sl-mt-1 sl-text-sm sl-text-gray-600\" :class=\"{ 'sl-cursor-pointer': !disabled }\" @click=\"!disabled && toggle()\">\n <div v-if=\"isDescriptionHtml\" v-html=\"description\" />\n <span v-else>{{ description }}</span>\n </div>\n </div>\n <Switch\n :id=\"id\"\n ref=\"switchRef\"\n v-model=\"switchValue\"\n :disabled=\"disabled\"\n :class=\"[\n switchClasses,\n { 'sl-shadow-md': boxShadow }\n ]\"\n @update:model-value=\"handleToggle\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown.space.prevent=\"toggle\"\n @keydown.enter.prevent=\"toggle\"\n >\n <span class=\"sl-sr-only\">{{ label }}</span>\n <span\n :class=\"[\n switchValue ? 'sl-translate-x-5' : 'sl-translate-x-0',\n 'sl-pointer-events-none sl-inline-block sl-h-5 sl-w-5 sl-transform sl-rounded-full sl-bg-white sl-shadow sl-ring-0 sl-transition sl-duration-200 sl-ease-in-out sl-relative'\n ]\"\n >\n </span>\n </Switch>\n <span v-if=\"textTrue || textFalse\" class=\"sl-ml-3 sl-text-sm\">\n <span v-if=\"switchValue && textTrue\" class=\"sl-font-medium sl-text-gray-800\">{{ textTrue }}</span>\n <span v-else-if=\"!switchValue && textFalse\" class=\"sl-text-gray-500\">{{ textFalse }}</span>\n </span>\n <div v-if=\"description && layout === 'stacked'\" class=\"sl-flex-1\">\n <p v-if=\"!isDescriptionHtml\" class=\"sl-mt-1 sl-text-sm sl-text-gray-600\">{{ description }}</p>\n <p v-else class=\"sl-mt-1 sl-text-sm sl-text-gray-600\" v-html=\"description\" />\n </div>\n </div>\n </FormFieldWrapper>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { Switch } from '@headlessui/vue'\nimport { useField } from 'vee-validate'\nimport { generateId } from '../../utils/id'\nimport FormFieldWrapper from '../forms/FormFieldWrapper.vue'\nimport type { ValidationRule } from '../../types/form'\n\ninterface Props {\n name: string\n modelValue?: boolean\n label?: string\n description?: string\n disabled?: boolean\n immediate?: boolean\n boxShadow?: boolean\n defaultValue?: boolean\n hideMainLabel?: boolean\n textTrue?: string\n textFalse?: string\n rules?: ValidationRule\n validateOnMount?: boolean\n successMessage?: string\n tertiaryLabel?: string\n isDescriptionHtml?: boolean\n showErrors?: boolean\n layout?: 'stacked' | 'inline'\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n immediate: false,\n boxShadow: false,\n defaultValue: false,\n hideMainLabel: false,\n isDescriptionHtml: false,\n showErrors: false,\n layout: 'stacked'\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean]\n blur: [event: FocusEvent]\n focus: [event: FocusEvent]\n}>()\n\nconst switchRef = ref<any>()\nconst id = generateId(`sl-${props.name}`)\n\nconst { value, errorMessage, handleChange, handleBlur, meta } = useField(\n () => props.name,\n props.rules,\n {\n type: 'checkbox',\n validateOnMount: props.validateOnMount,\n initialValue: props.modelValue ?? props.defaultValue,\n syncVModel: true\n }\n)\n\nconst switchValue = ref<boolean>(props.modelValue ?? props.defaultValue)\n\n// Watch for external changes\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (newValue !== undefined && newValue !== switchValue.value) {\n const boolVal = !!newValue\n switchValue.value = boolVal\n value.value = boolVal\n }\n },\n { immediate: true }\n)\n\nconst switchClasses = computed(() => {\n const baseClasses = [\n 'sl-relative',\n 'sl-inline-flex',\n 'sl-items-center',\n 'sl-h-6',\n 'sl-w-11',\n 'sl-flex-shrink-0',\n 'sl-cursor-pointer',\n 'sl-rounded-full',\n 'sl-border-2',\n 'sl-border-transparent',\n 'sl-transition-colors',\n 'sl-duration-200',\n 'sl-ease-in-out',\n 'focus:sl-outline-none',\n 'focus:sl-ring-2',\n 'focus:sl-ring-stachelock-600',\n 'focus:sl-ring-offset-2'\n ]\n\n if (props.disabled) {\n baseClasses.push(\n 'sl-cursor-not-allowed',\n 'sl-opacity-50'\n )\n }\n\n if (switchValue.value) {\n baseClasses.push('sl-bg-stachelock-600')\n } else {\n baseClasses.push('sl-bg-gray-200')\n }\n\n return baseClasses.join(' ')\n})\n\nconst handleToggle = (value: boolean) => {\n if (props.disabled) return\n \n switchValue.value = value\n if (props.immediate) {\n handleChange(value)\n }\n emit('update:modelValue', value)\n}\n\nconst onBlur = (event: FocusEvent) => {\n if (!props.immediate) {\n handleChange(switchValue.value)\n }\n handleBlur(event)\n emit('blur', event)\n}\n\nconst onFocus = (event: FocusEvent) => {\n emit('focus', event)\n}\n\n// Expose toggle method for external control\nconst toggle = () => {\n if (!props.disabled) {\n handleToggle(!switchValue.value)\n }\n}\n\ndefineExpose({\n toggle,\n value: switchValue,\n focus: () => {\n const el = (switchRef.value as any)?.$el ?? switchRef.value\n ;(el as HTMLButtonElement | null)?.focus?.()\n },\n blur: () => {\n const el = (switchRef.value as any)?.$el ?? switchRef.value\n ;(el as HTMLButtonElement | null)?.blur?.()\n },\n switchRef\n})\n</script>\n\n\n"],"names":["a","d","L","E","i","e","y","o","r","l","j","v","x","w","k","C","p","c","f","s","u","b","g","m","h","R","Q","t","z","P","ue","V","n","M","G","F","D","$","N","I","K","T","B","S","H","A","U","O","_","props","__props","emit","__emit","switchRef","ref","id","generateId","value","errorMessage","handleChange","handleBlur","meta","useField","switchValue","watch","newValue","boolVal","switchClasses","computed","baseClasses","handleToggle","onBlur","event","onFocus","toggle","__expose","_openBlock","_createElementBlock","_hoisted_1","_createVNode","FormFieldWrapper","_unref","name","layout","hideMainLabel","label","disabled","rules","tertiaryLabel","boxShadow","successMessage","showErrors","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","description","_normalizeClass","_cache","$event","isDescriptionHtml","Switch","_hoisted_7","_toDisplayString","textTrue","textFalse","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,14 +1,24 @@
1
- import { defineComponent as V, ref as p, watch as z, onMounted as A, createBlock as w, openBlock as u, withCtx as g, createElementVNode as d, normalizeClass as U, createElementBlock as c, Fragment as T, renderList as S, withDirectives as k, toDisplayString as h, normalizeStyle as F, withKeys as C, withModifiers as y, vModelText as B, createVNode as Q, unref as R, createCommentVNode as K, renderSlot as L, nextTick as W } from "vue";
2
- import { XMarkIcon as X } from "@heroicons/vue/20/solid";
3
- import j from "./components/Badge.js";
4
- import G from "./forms/FormFieldWrapper.js";
5
- const H = { key: 0 }, P = ["onUpdate:modelValue", "placeholder", "disabled", "onKeydown", "onBlur"], Y = ["onClick", "disabled"], Z = { class: "sl-flex-1 sl-min-w-0 sl-relative" }, _ = ["placeholder", "disabled", "onKeydown"], ee = { class: "sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-3 sl-pointer-events-auto" }, te = {
1
+ import { createElementBlock as c, openBlock as i, createElementVNode as d, defineComponent as V, ref as p, watch as z, onMounted as A, createBlock as T, withCtx as g, normalizeClass as U, Fragment as S, renderList as k, withDirectives as C, toDisplayString as h, normalizeStyle as F, withKeys as L, withModifiers as y, vModelText as B, createVNode as Q, unref as R, createCommentVNode as K, renderSlot as N, nextTick as W } from "vue";
2
+ import Z from "./components/Badge.js";
3
+ import j from "./forms/FormFieldWrapper.js";
4
+ function G(s, b) {
5
+ return i(), c("svg", {
6
+ xmlns: "http://www.w3.org/2000/svg",
7
+ viewBox: "0 0 20 20",
8
+ fill: "currentColor",
9
+ "aria-hidden": "true",
10
+ "data-slot": "icon"
11
+ }, [
12
+ d("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" })
13
+ ]);
14
+ }
15
+ const H = { key: 0 }, P = ["onUpdate:modelValue", "placeholder", "disabled", "onKeydown", "onBlur"], X = ["onClick", "disabled"], Y = { class: "sl-flex-1 sl-min-w-0 sl-relative" }, _ = ["placeholder", "disabled", "onKeydown"], ee = { class: "sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-3 sl-pointer-events-auto" }, te = {
6
16
  key: 0,
7
17
  class: "sl-absolute sl-z-50 sl-mt-1 sl-max-h-60 sl-w-full sl-overflow-auto sl-rounded-md sl-bg-white sl-py-1 sl-text-base sl-shadow-lg sl-ring-1 sl-ring-black sl-ring-opacity-5 focus:sl-outline-none sm:sl-text-sm"
8
18
  }, le = ["onClick"], se = { class: "sl-flex" }, ae = { class: "sl-truncate sl-font-semibold" }, ne = { class: "sl-block sl-truncate" }, oe = {
9
19
  key: 0,
10
20
  class: "sl-ml-2 sl-truncate sl-text-gray-500"
11
- }, ce = /* @__PURE__ */ V({
21
+ }, de = /* @__PURE__ */ V({
12
22
  __name: "TagifyInput",
13
23
  props: {
14
24
  items: {
@@ -81,8 +91,8 @@ const H = { key: 0 }, P = ["onUpdate:modelValue", "placeholder", "disabled", "on
81
91
  }
82
92
  },
83
93
  emits: ["update:value", "update:query", "invalid-tag"],
84
- setup(s, { expose: N, emit: D }) {
85
- const t = s, m = D, i = p(""), f = p([]), n = p(JSON.parse(JSON.stringify(t.value))), v = p(!1);
94
+ setup(s, { expose: b, emit: D }) {
95
+ const t = s, m = D, r = p(""), v = p([]), n = p(JSON.parse(JSON.stringify(t.value))), f = p(!1);
86
96
  z(
87
97
  () => t.value,
88
98
  (e) => {
@@ -90,57 +100,57 @@ const H = { key: 0 }, P = ["onUpdate:modelValue", "placeholder", "disabled", "on
90
100
  },
91
101
  { deep: !0 }
92
102
  );
93
- const I = (e) => e[t.itemSubtext] || e[t.itemText], q = (e) => e[t.itemSubtext] ? e[t.itemText] : void 0, E = (e) => e[t.tagDisplayKey] || e[t.itemText], $ = () => {
94
- if (i.value && i.value.length > 0) {
95
- m("update:query", i.value);
96
- const e = i.value.toLowerCase();
97
- f.value = t.items.filter((a) => a[t.itemText]?.toLowerCase().includes(e) || a[t.itemSubtext]?.toLowerCase().includes(e)), v.value = !0;
103
+ const q = (e) => e[t.itemSubtext] || e[t.itemText], E = (e) => e[t.itemSubtext] ? e[t.itemText] : void 0, I = (e) => e[t.tagDisplayKey] || e[t.itemText], $ = () => {
104
+ if (r.value && r.value.length > 0) {
105
+ m("update:query", r.value);
106
+ const e = r.value.toLowerCase();
107
+ v.value = t.items.filter((a) => a[t.itemText]?.toLowerCase().includes(e) || a[t.itemSubtext]?.toLowerCase().includes(e)), f.value = !0;
98
108
  } else
99
- f.value = [], v.value = !1;
109
+ v.value = [], f.value = !1;
100
110
  }, J = () => {
101
- const e = i.value.trim();
111
+ const e = r.value.trim();
102
112
  if (e === "")
103
113
  return;
104
114
  let a = null;
105
- const l = e.toLowerCase(), r = t.items.find(
115
+ const l = e.toLowerCase(), u = t.items.find(
106
116
  (o) => o[t.itemText]?.toLowerCase() === l || o[t.itemSubtext]?.toLowerCase() === l
107
117
  );
108
- if (r)
109
- a = { ...r };
118
+ if (u)
119
+ a = { ...u };
110
120
  else if (t.pattern && t.pattern.test(e))
111
121
  a = { id: null, [t.itemText]: e };
112
122
  else
113
123
  return;
114
124
  n.value.some(
115
125
  (o) => o[t.itemText] === a[t.itemText]
116
- ) || (n.value.push(a), m("update:value", n.value)), i.value = "", f.value = [], v.value = !1;
126
+ ) || (n.value.push(a), m("update:value", n.value)), r.value = "", v.value = [], f.value = !1;
117
127
  }, M = (e) => {
118
128
  const a = e[t.itemText].trim();
119
129
  n.value.some(
120
130
  (l) => l[t.itemText] === a
121
- ) || (n.value.push({ ...e }), m("update:value", n.value)), i.value = "", f.value = [], v.value = !1;
122
- }, b = (e) => {
131
+ ) || (n.value.push({ ...e }), m("update:value", n.value)), r.value = "", v.value = [], f.value = !1;
132
+ }, x = (e) => {
123
133
  n.value.splice(e, 1), m("update:value", n.value);
124
134
  }, O = (e) => {
125
135
  n.value[e].isEditing = !0, W(() => {
126
136
  });
127
- }, x = (e) => {
137
+ }, w = (e) => {
128
138
  const a = n.value[e];
129
139
  if (a) {
130
140
  a.isEditing = !1;
131
141
  const l = a[t.itemText].trim();
132
142
  if (t.pattern && !t.pattern.test(l)) {
133
- m("invalid-tag", l), b(e);
143
+ m("invalid-tag", l), x(e);
134
144
  return;
135
145
  }
136
146
  a[t.itemText] = l, m("update:value", n.value);
137
147
  }
138
148
  };
139
149
  return A(() => {
140
- f.value = [];
141
- }), N({
150
+ v.value = [];
151
+ }), b({
142
152
  selectedTags: n
143
- }), (e, a) => (u(), w(G, {
153
+ }), (e, a) => (i(), T(j, {
144
154
  id: s.name,
145
155
  name: s.name,
146
156
  label: s.label,
@@ -150,70 +160,70 @@ const H = { key: 0 }, P = ["onUpdate:modelValue", "placeholder", "disabled", "on
150
160
  optional: s.optional
151
161
  }, {
152
162
  "tertiary-label-overlay": g(() => [
153
- L(e.$slots, "tertiary-overlay")
163
+ N(e.$slots, "tertiary-overlay")
154
164
  ]),
155
165
  default: g(() => [
156
166
  d("div", {
157
167
  class: U(["sl-flex sl-flex-wrap sl-items-center sl-gap-4 sl-rounded-md sl-bg-white sl-px-3 sm:sl-text-sm sm:sl-leading-6", s.inline ? null : "sl-shadow-sm sl-border sl-border-gray-300 focus-within:sl-ring-2 focus-within:sl-ring-stachelock-600"])
158
168
  }, [
159
- (u(!0), c(T, null, S(n.value, (l, r) => (u(), w(j, {
160
- key: r,
161
- onClick: (o) => O(r),
169
+ (i(!0), c(S, null, k(n.value, (l, u) => (i(), T(Z, {
170
+ key: u,
171
+ onClick: (o) => O(u),
162
172
  theme: "primary",
163
173
  size: "sm"
164
174
  }, {
165
175
  default: g(() => [
166
- l.isEditing ? k((u(), c("input", {
176
+ l.isEditing ? C((i(), c("input", {
167
177
  key: 1,
168
178
  ref_for: !0,
169
179
  ref: "editInput",
170
180
  "onUpdate:modelValue": (o) => l[t.itemText] = o,
171
181
  placeholder: s.placeholder,
172
182
  disabled: s.disabled,
173
- onKeydown: C(y((o) => x(r), ["prevent"]), ["enter"]),
174
- onBlur: (o) => x(r),
183
+ onKeydown: L(y((o) => w(u), ["prevent"]), ["enter"]),
184
+ onBlur: (o) => w(u),
175
185
  class: "sl-bg-transparent sl-border-none sl-outline-none sl-text-stachelock-600 sl-text-sm placeholder:sl-text-stachelock-400/80 focus:sl-ring-0 focus:sl-ring-stachelock-600 focus:sl-rounded-lg -sl-mx-3 -sl-my-2",
176
186
  style: F({ width: l[t.itemText].length + 4 + "ch" })
177
187
  }, null, 44, P)), [
178
188
  [B, l[t.itemText]]
179
- ]) : (u(), c("span", H, h(E(l)), 1)),
189
+ ]) : (i(), c("span", H, h(I(l)), 1)),
180
190
  d("button", {
181
191
  type: "button",
182
192
  class: "sl-ml-2 sl-text-stachelock-600 hover:sl-text-stachelock-400 focus:sl-outline-none",
183
- onClick: y((o) => b(r), ["stop"]),
193
+ onClick: y((o) => x(u), ["stop"]),
184
194
  disabled: s.disabled
185
195
  }, [
186
- Q(R(X), { class: "sl-h-4 sl-w-4" })
187
- ], 8, Y)
196
+ Q(R(G), { class: "sl-h-4 sl-w-4" })
197
+ ], 8, X)
188
198
  ]),
189
199
  _: 2
190
200
  }, 1032, ["onClick"]))), 128)),
191
- d("div", Z, [
192
- k(d("input", {
201
+ d("div", Y, [
202
+ C(d("input", {
193
203
  ref: "input",
194
- "onUpdate:modelValue": a[0] || (a[0] = (l) => i.value = l),
204
+ "onUpdate:modelValue": a[0] || (a[0] = (l) => r.value = l),
195
205
  placeholder: s.placeholder,
196
206
  onInput: $,
197
207
  disabled: s.disabled,
198
- onKeydown: C(y(J, ["prevent"]), ["enter"]),
208
+ onKeydown: L(y(J, ["prevent"]), ["enter"]),
199
209
  class: "sl-w-full sl-border-none sl-outline-none sl-rounded-md focus:sl-ring-0 sl-text-sm sl-font-light -sl-mx-3 sl-pr-12"
200
210
  }, null, 40, _), [
201
- [B, i.value]
211
+ [B, r.value]
202
212
  ]),
203
213
  d("div", ee, [
204
- L(e.$slots, "input-overlay")
214
+ N(e.$slots, "input-overlay")
205
215
  ]),
206
- v.value && !s.disabled ? (u(), c("div", te, [
207
- (u(!0), c(T, null, S(f.value, (l) => (u(), c("div", {
216
+ f.value && !s.disabled ? (i(), c("div", te, [
217
+ (i(!0), c(S, null, k(v.value, (l) => (i(), c("div", {
208
218
  key: l[s.itemKey],
209
219
  class: "sl-cursor-pointer sl-select-none sl-py-2 sl-pl-3 sl-pr-9 hover:sl-bg-stachelock-600 hover:sl-text-white",
210
- onClick: y((r) => M(l), ["prevent"])
220
+ onClick: y((u) => M(l), ["prevent"])
211
221
  }, [
212
222
  d("div", se, [
213
223
  d("span", ae, [
214
- d("span", ne, h(I(l)), 1)
224
+ d("span", ne, h(q(l)), 1)
215
225
  ]),
216
- s.showSubext ? (u(), c("span", oe, h(q(l)), 1)) : K("", !0)
226
+ s.showSubext ? (i(), c("span", oe, h(E(l)), 1)) : K("", !0)
217
227
  ])
218
228
  ], 8, le))), 128))
219
229
  ])) : K("", !0)
@@ -225,6 +235,6 @@ const H = { key: 0 }, P = ["onUpdate:modelValue", "placeholder", "disabled", "on
225
235
  }
226
236
  });
227
237
  export {
228
- ce as _
238
+ de as _
229
239
  };
230
- //# sourceMappingURL=TagifyInput.vue_vue_type_script_setup_true_lang-RHqhKoK5.js.map
240
+ //# sourceMappingURL=TagifyInput.vue_vue_type_script_setup_true_lang-DRR6jt_8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagifyInput.vue_vue_type_script_setup_true_lang-DRR6jt_8.js","sources":["../node_modules/@heroicons/vue/20/solid/esm/XMarkIcon.js","../src/components/inputs/TagifyInput.vue"],"sourcesContent":["import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport default function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\"\n }, [\n _createElementVNode(\"path\", { d: \"M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z\" })\n ]))\n}","<template>\n <FormFieldWrapper\n :id=\"name\"\n :name=\"name\"\n :label=\"label\"\n :tertiary-label=\"tertiaryLabel\"\n :error-message=\"errorMessage\"\n :disabled=\"disabled\"\n :optional=\"optional\"\n >\n <template #tertiary-label-overlay>\n <slot name=\"tertiary-overlay\"></slot>\n </template>\n \n <div class=\"sl-flex sl-flex-wrap sl-items-center sl-gap-4 sl-rounded-md sl-bg-white sl-px-3 sm:sl-text-sm sm:sl-leading-6\"\n :class=\"inline ? null : 'sl-shadow-sm sl-border sl-border-gray-300 focus-within:sl-ring-2 focus-within:sl-ring-stachelock-600'\">\n <!-- Display selected tags as badges -->\n <UiBadge v-for=\"(tag, index) in selectedTags\" :key=\"index\" @click=\"editTag(index)\" theme=\"primary\" size=\"sm\">\n <span v-if=\"!tag.isEditing\">{{ tagDisplay(tag) }}</span>\n <input v-else ref=\"editInput\" v-model=\"tag[props.itemText]\" :placeholder=\"placeholder\"\n :disabled=\"disabled\" @keydown.enter.prevent=\"stopEditingTag(index)\"\n @blur=\"stopEditingTag(index)\"\n class=\"sl-bg-transparent sl-border-none sl-outline-none sl-text-stachelock-600 sl-text-sm placeholder:sl-text-stachelock-400/80 focus:sl-ring-0 focus:sl-ring-stachelock-600 focus:sl-rounded-lg -sl-mx-3 -sl-my-2\"\n :style=\"{ width: tag[props.itemText].length + 4 + 'ch' }\" />\n <button type=\"button\" class=\"sl-ml-2 sl-text-stachelock-600 hover:sl-text-stachelock-400 focus:sl-outline-none\"\n @click.stop=\"removeTag(index)\" :disabled=\"disabled\">\n <XMarkIcon class=\"sl-h-4 sl-w-4\" />\n </button>\n </UiBadge>\n <!-- Input for adding new tags -->\n <div class=\"sl-flex-1 sl-min-w-0 sl-relative\">\n <input ref=\"input\" v-model=\"query\" :placeholder=\"placeholder\" @input=\"filterItems\"\n :disabled=\"disabled\" @keydown.enter.prevent=\"addTag\"\n class=\"sl-w-full sl-border-none sl-outline-none sl-rounded-md focus:sl-ring-0 sl-text-sm sl-font-light -sl-mx-3 sl-pr-12\" />\n <!-- Overlay slot aligned to the far right -->\n <div class=\"sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-3 sl-pointer-events-auto\">\n <slot name=\"input-overlay\" />\n </div>\n <!-- Suggestions Dropdown -->\n <div v-if=\"showDropdown && !disabled\"\n class=\"sl-absolute sl-z-50 sl-mt-1 sl-max-h-60 sl-w-full sl-overflow-auto sl-rounded-md sl-bg-white sl-py-1 sl-text-base sl-shadow-lg sl-ring-1 sl-ring-black sl-ring-opacity-5 focus:sl-outline-none sm:sl-text-sm\">\n <div v-for=\"item in filteredItems\" :key=\"item[itemKey]\"\n class=\"sl-cursor-pointer sl-select-none sl-py-2 sl-pl-3 sl-pr-9 hover:sl-bg-stachelock-600 hover:sl-text-white\"\n @click.prevent=\"selectSuggestion(item)\">\n <div class=\"sl-flex\">\n <span class=\"sl-truncate sl-font-semibold\">\n <span class=\"sl-block sl-truncate\">{{ itemDisplay(item) }}</span>\n </span>\n <span v-if=\"showSubext\" class=\"sl-ml-2 sl-truncate sl-text-gray-500\">\n {{ itemSecondaryDisplay(item) }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </FormFieldWrapper>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, watch, onMounted, nextTick } from 'vue';\nimport { XMarkIcon } from '@heroicons/vue/20/solid';\nimport UiBadge from '../UiBadge.vue';\nimport FormFieldWrapper from '../forms/FormFieldWrapper.vue';\n\ninterface Item {\n id: string | number | null;\n [key: string]: any; // Allows dynamic keys like 'value' or 'name'\n}\n\nconst props = defineProps({\n items: {\n type: Array as () => Item[],\n required: true,\n },\n value: {\n type: Array as () => Item[],\n default: () => [],\n },\n name: {\n type: String,\n required: true,\n },\n label: {\n type: String,\n required: false,\n },\n itemKey: {\n type: String,\n default: 'id',\n },\n itemText: {\n type: String,\n default: 'value',\n },\n itemSubtext: {\n type: String,\n default: 'name',\n },\n showSubext: {\n type: Boolean,\n default: true\n },\n tagDisplayKey: {\n type: String,\n default: 'name',\n },\n tertiaryLabel: {\n type: String,\n required: false,\n },\n pattern: {\n type: RegExp,\n default: null,\n },\n inline: {\n type: Boolean,\n default: false,\n },\n placeholder: {\n type: String,\n default: 'Add a tag...',\n },\n disabled: {\n type: Boolean,\n default: false\n },\n optional: {\n type: Boolean,\n default: false\n },\n errorMessage: {\n type: String,\n default: ''\n },\n hasInputRing: {\n type: Boolean,\n default: false\n }\n});\n\nconst emits = defineEmits(['update:value', 'update:query', 'invalid-tag']);\n\nconst query = ref<string>('');\nconst filteredItems = ref<Item[]>([]);\nconst selectedTags = ref<Item[]>(JSON.parse(JSON.stringify(props.value)));\nconst showDropdown = ref(false);\n\nwatch(\n () => props.value,\n (newVal) => {\n if (JSON.stringify(newVal) !== JSON.stringify(selectedTags.value)) {\n selectedTags.value = JSON.parse(JSON.stringify(newVal));\n }\n },\n { deep: true }\n);\n\nconst itemDisplay = (item: Item) => item[props.itemSubtext] || item[props.itemText];\nconst itemSecondaryDisplay = (item: Item) => item[props.itemSubtext] ? item[props.itemText] : undefined;\nconst tagDisplay = (tag: Item) => tag[props.tagDisplayKey] || tag[props.itemText];\n\nconst filterItems = () => {\n if (query.value && query.value.length > 0) {\n emits('update:query', query.value);\n\n // Simple filtering logic\n const lowerQuery = query.value.toLowerCase();\n filteredItems.value = props.items.filter((item) => {\n return (\n item[props.itemText]?.toLowerCase().includes(lowerQuery) ||\n item[props.itemSubtext]?.toLowerCase().includes(lowerQuery)\n );\n });\n showDropdown.value = true;\n } else {\n filteredItems.value = [];\n showDropdown.value = false;\n }\n};\n\nconst addTag = () => {\n const trimmedQuery = query.value.trim();\n if (trimmedQuery === '') {\n return;\n }\n\n let tagToAdd: Item | null = null;\n\n const lowerQuery = trimmedQuery.toLowerCase();\n\n // Check if the query matches any item in the items list\n const matchedItem = props.items.find(\n (item) =>\n item[props.itemText]?.toLowerCase() === lowerQuery ||\n item[props.itemSubtext]?.toLowerCase() === lowerQuery\n );\n\n if (matchedItem) {\n tagToAdd = { ...matchedItem };\n } else if (props.pattern && props.pattern.test(trimmedQuery)) {\n // Create a new item if it doesn't exist and matches the pattern\n tagToAdd = { id: null, [props.itemText]: trimmedQuery };\n } else {\n // Do not emit invalid-tag here; let the user continue typing\n return;\n }\n\n // Avoid duplicates\n if (\n !selectedTags.value.some(\n (tag) => tag[props.itemText] === tagToAdd![props.itemText]\n )\n ) {\n selectedTags.value.push(tagToAdd!);\n emits('update:value', selectedTags.value);\n }\n\n query.value = '';\n filteredItems.value = [];\n showDropdown.value = false;\n};\n\nconst selectSuggestion = (item: Item) => {\n const valueToTest = item[props.itemText].trim();\n\n // Avoid duplicates\n if (\n !selectedTags.value.some(\n (tag) => tag[props.itemText] === valueToTest\n )\n ) {\n selectedTags.value.push({ ...item });\n emits('update:value', selectedTags.value);\n }\n query.value = '';\n filteredItems.value = [];\n showDropdown.value = false;\n};\n\nconst removeTag = (index: number) => {\n selectedTags.value.splice(index, 1);\n emits('update:value', selectedTags.value);\n};\n\nconst editTag = (index: number) => {\n selectedTags.value[index].isEditing = true;\n nextTick(() => {\n // Focus logic can be added here if needed\n });\n};\n\nconst stopEditingTag = (index: number) => {\n const tag = selectedTags.value[index];\n if (tag) {\n tag.isEditing = false;\n const valueToTest = tag[props.itemText].trim();\n\n // Validate tag if pattern is provided\n if (props.pattern && !props.pattern.test(valueToTest)) {\n emits('invalid-tag', valueToTest);\n removeTag(index);\n return;\n }\n\n // Update the tag value after trimming\n tag[props.itemText] = valueToTest;\n emits('update:value', selectedTags.value);\n }\n};\n\nonMounted(() => {\n // Initialize filteredItems\n filteredItems.value = [];\n});\n\ndefineExpose({\n selectedTags,\n});\n</script>\n\n<style scoped>\n</style>\n"],"names":["render","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","props","__props","emits","__emit","query","ref","filteredItems","selectedTags","showDropdown","watch","newVal","itemDisplay","item","itemSecondaryDisplay","tagDisplay","tag","filterItems","lowerQuery","addTag","trimmedQuery","tagToAdd","matchedItem","selectSuggestion","valueToTest","removeTag","index","editTag","nextTick","stopEditingTag","onMounted","__expose","_createBlock","FormFieldWrapper","_renderSlot","_normalizeClass","_Fragment","_renderList","UiBadge","$event","_withKeys","_withModifiers","_hoisted_1","_toDisplayString","_createVNode","_unref","XMarkIcon","_hoisted_4","_hoisted_6","_hoisted_7","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,82 @@
1
+ import { createElementBlock as o, openBlock as a, createElementVNode as c, defineComponent as v, ref as m, computed as x, watchEffect as w, Fragment as B, renderList as P, createBlock as k, createCommentVNode as C, createVNode as y, unref as N, withCtx as E, createTextVNode as V, toDisplayString as L } from "vue";
2
+ import { u as S, a as D, _ as R } from "./UiNavLink.vue_vue_type_script_setup_true_lang-Bz5oiCCk.js";
3
+ function U(d, n) {
4
+ return a(), o("svg", {
5
+ xmlns: "http://www.w3.org/2000/svg",
6
+ viewBox: "0 0 20 20",
7
+ fill: "currentColor",
8
+ "aria-hidden": "true",
9
+ "data-slot": "icon"
10
+ }, [
11
+ c("path", {
12
+ "fill-rule": "evenodd",
13
+ d: "M8.22 5.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L11.94 10 8.22 6.28a.75.75 0 0 1 0-1.06Z",
14
+ "clip-rule": "evenodd"
15
+ })
16
+ ]);
17
+ }
18
+ const j = {
19
+ class: "sl-hidden sm:sl-flex",
20
+ "aria-label": "Breadcrumb"
21
+ }, A = {
22
+ role: "list",
23
+ class: "sl-flex sl-items-center sl-space-x-4"
24
+ }, F = { class: "sl-flex sl-items-center" }, Z = /* @__PURE__ */ v({
25
+ __name: "UiBreadcrumb",
26
+ setup(d) {
27
+ const n = m([]), h = S(), f = D(), i = m(""), p = x(() => n.value.map((s) => {
28
+ const t = s.name.trim();
29
+ return {
30
+ ...s,
31
+ name: t.length > 12 ? t.slice(0, 12) + "..." : t
32
+ };
33
+ })), _ = async () => {
34
+ const s = h.path;
35
+ i.value = s;
36
+ const t = s.split("/").filter(Boolean), e = [];
37
+ for (const [l, r] of t.entries()) {
38
+ let u;
39
+ u = r.charAt(0).toUpperCase() + r.slice(1).toLowerCase(), e.push({
40
+ name: u,
41
+ fullPath: "/" + t.slice(0, l + 1).join("/")
42
+ });
43
+ }
44
+ n.value = e;
45
+ }, g = (s, t) => {
46
+ const e = f.resolve(s.fullPath), l = e.matched.some((r) => r.meta?.isErrorPage);
47
+ (!e || e.matched.length === 0 || l) && (t.preventDefault(), t.stopPropagation(), console.warn("Breadcrumb route not found or is an error page:", s.fullPath));
48
+ };
49
+ return w(() => {
50
+ _();
51
+ }), (s, t) => (a(), o("nav", j, [
52
+ c("ol", A, [
53
+ (a(!0), o(B, null, P(p.value, (e, l) => (a(), o("li", {
54
+ key: e.fullPath
55
+ }, [
56
+ c("div", F, [
57
+ l !== 0 ? (a(), k(N(U), {
58
+ key: 0,
59
+ class: "sl-h-5 sl-w-5 sl-flex-shrink-0 sl-text-gray-400 sl-mr-3",
60
+ "aria-hidden": "true"
61
+ })) : C("", !0),
62
+ y(R, {
63
+ to: e.fullPath,
64
+ onClick: (r) => g(e, r),
65
+ "aria-current": e.fullPath === i.value ? "page" : void 0,
66
+ class: "sl-text-sm sl-font-medium sl-text-gray-500 hover:sl-text-gray-700 sl-truncate sl-overflow-ellipsis"
67
+ }, {
68
+ default: E(() => [
69
+ V(L(e.name), 1)
70
+ ]),
71
+ _: 2
72
+ }, 1032, ["to", "onClick", "aria-current"])
73
+ ])
74
+ ]))), 128))
75
+ ])
76
+ ]));
77
+ }
78
+ });
79
+ export {
80
+ Z as _
81
+ };
82
+ //# sourceMappingURL=UiBreadcrumb.vue_vue_type_script_setup_true_lang-quGuN9v4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiBreadcrumb.vue_vue_type_script_setup_true_lang-quGuN9v4.js","sources":["../node_modules/@heroicons/vue/20/solid/esm/ChevronRightIcon.js","../src/components/UiBreadcrumb.vue"],"sourcesContent":["import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport default function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\"\n }, [\n _createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M8.22 5.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L11.94 10 8.22 6.28a.75.75 0 0 1 0-1.06Z\",\n \"clip-rule\": \"evenodd\"\n })\n ]))\n}","<template>\n <nav class=\"sl-hidden sm:sl-flex\" aria-label=\"Breadcrumb\">\n <ol role=\"list\" class=\"sl-flex sl-items-center sl-space-x-4\">\n <li v-for=\"(breadcrumb, index) in processedBreadcrumbs\" :key=\"breadcrumb.fullPath\">\n <div class=\"sl-flex sl-items-center\">\n <ChevronRightIcon v-if=\"index !== 0\" class=\"sl-h-5 sl-w-5 sl-flex-shrink-0 sl-text-gray-400 sl-mr-3\" aria-hidden=\"true\" />\n <!-- Make sure UiNavLink forwards the native click event -->\n <UiNavLink :to=\"breadcrumb.fullPath\" @click=\"(event) => handleBreadcrumbClick(breadcrumb, event)\"\n :aria-current=\"breadcrumb.fullPath === currentPath ? 'page' : undefined\"\n class=\"sl-text-sm sl-font-medium sl-text-gray-500 hover:sl-text-gray-700 sl-truncate sl-overflow-ellipsis\">\n {{ breadcrumb.name }}\n </UiNavLink>\n </div>\n </li>\n </ol>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watchEffect, computed } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport UiNavLink from './UiNavLink.vue';\nimport { ChevronRightIcon } from '@heroicons/vue/20/solid';\n\ninterface BreadcrumbItem {\n name: string;\n fullPath: string;\n}\n\ninterface RouteMeta {\n isErrorPage?: boolean;\n}\n\nconst breadcrumbs = ref<BreadcrumbItem[]>([]);\n\nconst route = useRoute();\nconst router = useRouter();\nconst currentPath = ref<string>('');\n\nconst processedBreadcrumbs = computed(() => {\n return breadcrumbs.value.map(breadcrumb => {\n // Optionally trim very long names (only if needed)\n const trimmedName = breadcrumb.name.trim();\n return {\n ...breadcrumb,\n name: trimmedName.length > 12 ? trimmedName.slice(0, 12) + '...' : trimmedName\n };\n });\n});\n\nconst processSegments = async () => {\n const path = route.path;\n currentPath.value = path;\n const pathSegments = path.split('/').filter(Boolean);\n const tempBreadcrumbs: BreadcrumbItem[] = [];\n\n // Loop through each segment in the URL.\n for (const [index, segment] of pathSegments.entries()) {\n let segmentName: string;\n \n // Simple processing - can be extended as needed\n segmentName = segment.charAt(0).toUpperCase() + segment.slice(1).toLowerCase();\n\n tempBreadcrumbs.push({\n name: segmentName,\n fullPath: '/' + pathSegments.slice(0, index + 1).join('/')\n });\n }\n\n breadcrumbs.value = tempBreadcrumbs;\n};\n\n/**\n * Prevent navigation if the resolved route is an error page.\n */\nconst handleBreadcrumbClick = (breadcrumb: BreadcrumbItem, event: MouseEvent) => {\n const resolved = router.resolve(breadcrumb.fullPath);\n // Check if any matched record is an error page.\n const isErrorPage = resolved.matched.some((route: { meta?: RouteMeta }) => route.meta?.isErrorPage);\n if (!resolved || resolved.matched.length === 0 || isErrorPage) {\n event.preventDefault();\n event.stopPropagation();\n console.warn('Breadcrumb route not found or is an error page:', breadcrumb.fullPath);\n }\n};\n\nwatchEffect(() => {\n processSegments();\n});\n</script>\n\n<style scoped>\n</style>\n"],"names":["render","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","breadcrumbs","ref","route","useRoute","router","useRouter","currentPath","processedBreadcrumbs","computed","breadcrumb","trimmedName","processSegments","path","pathSegments","tempBreadcrumbs","index","segment","segmentName","handleBreadcrumbClick","event","resolved","isErrorPage","watchEffect","_hoisted_1","_hoisted_2","_Fragment","_renderList","_hoisted_3","_createBlock","_unref","ChevronRightIcon","_createVNode","UiNavLink","_createTextVNode","_toDisplayString"],"mappings":";;AAEe,SAASA,EAAOC,GAAMC,GAAQ;AAC3C,SAAQC,EAAU,GAAIC,EAAoB,OAAO;AAAA,IAC/C,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,EACjB,GAAK;AAAA,IACDC,EAAoB,QAAQ;AAAA,MAC1B,aAAa;AAAA,MACb,GAAG;AAAA,MACH,aAAa;AAAA,IACnB,CAAK;AAAA,EACL,CAAG;AACH;;;;;;;;;;ACiBA,UAAMC,IAAcC,EAAsB,EAAE,GAEtCC,IAAQC,EAAA,GACRC,IAASC,EAAA,GACTC,IAAcL,EAAY,EAAE,GAE5BM,IAAuBC,EAAS,MAC7BR,EAAY,MAAM,IAAI,CAAAS,MAAc;AAEzC,YAAMC,IAAcD,EAAW,KAAK,KAAA;AACpC,aAAO;AAAA,QACL,GAAGA;AAAA,QACH,MAAMC,EAAY,SAAS,KAAKA,EAAY,MAAM,GAAG,EAAE,IAAI,QAAQA;AAAA,MAAA;AAAA,IAEvE,CAAC,CACF,GAEKC,IAAkB,YAAY;AAClC,YAAMC,IAAOV,EAAM;AACnB,MAAAI,EAAY,QAAQM;AACpB,YAAMC,IAAeD,EAAK,MAAM,GAAG,EAAE,OAAO,OAAO,GAC7CE,IAAoC,CAAA;AAG1C,iBAAW,CAACC,GAAOC,CAAO,KAAKH,EAAa,WAAW;AACrD,YAAII;AAGJ,QAAAA,IAAcD,EAAQ,OAAO,CAAC,EAAE,gBAAgBA,EAAQ,MAAM,CAAC,EAAE,YAAA,GAEjEF,EAAgB,KAAK;AAAA,UACnB,MAAMG;AAAA,UACN,UAAU,MAAMJ,EAAa,MAAM,GAAGE,IAAQ,CAAC,EAAE,KAAK,GAAG;AAAA,QAAA,CAC1D;AAAA,MACH;AAEA,MAAAf,EAAY,QAAQc;AAAA,IACtB,GAKMI,IAAwB,CAACT,GAA4BU,MAAsB;AAC/E,YAAMC,IAAWhB,EAAO,QAAQK,EAAW,QAAQ,GAE7CY,IAAcD,EAAS,QAAQ,KAAK,CAAClB,MAAgCA,EAAM,MAAM,WAAW;AAClG,OAAI,CAACkB,KAAYA,EAAS,QAAQ,WAAW,KAAKC,OAChDF,EAAM,eAAA,GACNA,EAAM,gBAAA,GACN,QAAQ,KAAK,mDAAmDV,EAAW,QAAQ;AAAA,IAEvF;AAEA,WAAAa,EAAY,MAAM;AAChB,MAAAX,EAAA;AAAA,IACF,CAAC,cAvFCd,EAAA,GAAAC,EAcM,OAdNyB,GAcM;AAAA,MAbJxB,EAYK,MAZLyB,GAYK;AAAA,SAXH3B,EAAA,EAAA,GAAAC,EAUK2B,GAAA,MAAAC,EAV6BnB,EAAA,OAAoB,CAA1CE,GAAYM,YAAxBjB,EAUK,MAAA;AAAA,UAVoD,KAAKW,EAAW;AAAA,QAAA;UACvEV,EAQM,OARN4B,GAQM;AAAA,YAPoBZ,MAAK,UAA7Ba,EAA0HC,EAAAC,CAAA,GAAA;AAAA;cAArF,OAAM;AAAA,cAA0D,eAAY;AAAA,YAAA;YAEjHC,EAIYC,GAAA;AAAA,cAJA,IAAIvB,EAAW;AAAA,cAAW,UAAQU,MAAUD,EAAsBT,GAAYU,CAAK;AAAA,cAC5F,gBAAcV,EAAW,aAAaH,EAAA,iBAAuB;AAAA,cAC9D,OAAM;AAAA,YAAA;yBACN,MAAqB;AAAA,gBAAlB2B,EAAAC,EAAAzB,EAAW,IAAI,GAAA,CAAA;AAAA,cAAA;;;;;;;;;","x_google_ignoreList":[0]}
@@ -1,7 +1,8 @@
1
- import { defineComponent as _, ref as b, computed as k, createBlock as m, openBlock as r, unref as t, withCtx as l, createVNode as o, createElementVNode as s, normalizeClass as u, renderSlot as n, createCommentVNode as x, createTextVNode as y, toDisplayString as p } from "vue";
2
- import { TransitionRoot as T, Dialog as V, TransitionChild as h, DialogPanel as B, DialogTitle as S } from "@headlessui/vue";
3
- import w from "./components/Button.js";
4
- const z = { class: "sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto" }, $ = { class: "sl-bg-white" }, D = { class: "sl-px-4 sl-pt-5 sl-pb-4 sm:sl-p-6 sm:sl-pb-4" }, N = { class: "sm:sl-flex sm:sl-items-start" }, j = { class: "sl-mx-auto sl-flex sl-h-12 sl-w-12 sl-flex-shrink-0 sl-items-center sl-justify-center sl-rounded-full sl-bg-gray-100 sm:sl-mx-0 sm:sl-h-10 sm:sl-w-10" }, F = { class: "sl-mt-3 sl-text-center sm:sl-ml-4 sm:sl-mt-0 sm:sl-text-left sl-w-full" }, R = { class: "sl-mt-2" }, E = { class: "sl-px-4 sl-py-3 sm:sl-flex sm:sl-flex-row-reverse sm:sl-px-6" }, q = { class: "sl-flex sl-w-full sl-justify-end sl-gap-3" }, A = /* @__PURE__ */ _({
1
+ import { defineComponent as _, ref as b, computed as V, createBlock as m, openBlock as r, unref as t, withCtx as l, createVNode as o, createElementVNode as s, normalizeClass as u, renderSlot as n, createCommentVNode as x, createTextVNode as y, toDisplayString as p } from "vue";
2
+ import h from "./components/Button.js";
3
+ import { S as k, h as w } from "./transition-CuxxW9dY.js";
4
+ import { Y as S, G as B, V as T } from "./dialog-U1KNiPzc.js";
5
+ const z = { class: "sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto" }, $ = { class: "sl-bg-white" }, N = { class: "sl-px-4 sl-pt-5 sl-pb-4 sm:sl-p-6 sm:sl-pb-4" }, j = { class: "sm:sl-flex sm:sl-items-start" }, F = { class: "sl-mx-auto sl-flex sl-h-12 sl-w-12 sl-flex-shrink-0 sl-items-center sl-justify-center sl-rounded-full sl-bg-gray-100 sm:sl-mx-0 sm:sl-h-10 sm:sl-w-10" }, E = { class: "sl-mt-3 sl-text-center sm:sl-ml-4 sm:sl-mt-0 sm:sl-text-left sl-w-full" }, G = { class: "sl-mt-2" }, R = { class: "sl-px-4 sl-py-3 sm:sl-flex sm:sl-flex-row-reverse sm:sl-px-6" }, Y = { class: "sl-flex sl-w-full sl-justify-end sl-gap-3" }, A = /* @__PURE__ */ _({
5
6
  __name: "UiModal",
6
7
  props: {
7
8
  modelValue: { type: Boolean, required: !0 },
@@ -30,24 +31,24 @@ const z = { class: "sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto"
30
31
  },
31
32
  emits: ["update:modelValue", "cancel", "confirm"],
32
33
  setup(e, { emit: v }) {
33
- const i = v, c = b(null), g = k(() => c.value), d = () => {
34
+ const i = v, c = b(null), g = V(() => c.value), d = () => {
34
35
  i("update:modelValue", !1), i("cancel");
35
36
  }, C = () => {
36
37
  i("confirm"), i("update:modelValue", !1);
37
38
  };
38
- return (a, f) => (r(), m(t(T), {
39
+ return (a, f) => (r(), m(t(k), {
39
40
  as: "template",
40
41
  show: e.modelValue
41
42
  }, {
42
43
  default: l(() => [
43
- o(t(V), {
44
+ o(t(S), {
44
45
  as: "div",
45
46
  class: "sl-relative sl-z-50",
46
47
  onClose: d,
47
48
  "initial-focus": g.value
48
49
  }, {
49
50
  default: l(() => [
50
- o(t(h), {
51
+ o(t(w), {
51
52
  as: "template",
52
53
  enter: "ease-out duration-300",
53
54
  "enter-from": "opacity-0",
@@ -66,7 +67,7 @@ const z = { class: "sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto"
66
67
  s("div", {
67
68
  class: u(["sl-flex sl-min-h-full sl-items-center sl-justify-center sl-p-4 sl-text-center", [e.position === "top" ? "sm:sl-items-start sm:sl-pt-16" : "sm:sl-items-center"]])
68
69
  }, [
69
- o(t(h), {
70
+ o(t(w), {
70
71
  as: "template",
71
72
  enter: "ease-out duration-300",
72
73
  "enter-from": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",
@@ -81,13 +82,13 @@ const z = { class: "sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto"
81
82
  }, {
82
83
  default: l(() => [
83
84
  s("div", $, [
84
- s("div", D, [
85
- s("div", N, [
86
- s("div", j, [
85
+ s("div", N, [
86
+ s("div", j, [
87
+ s("div", F, [
87
88
  n(a.$slots, "icon")
88
89
  ]),
89
- s("div", F, [
90
- o(t(S), {
90
+ s("div", E, [
91
+ o(t(T), {
91
92
  as: "h3",
92
93
  class: "sl-text-base sl-font-semibold sl-leading-6 sl-text-gray-900"
93
94
  }, {
@@ -96,7 +97,7 @@ const z = { class: "sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto"
96
97
  ]),
97
98
  _: 3
98
99
  }),
99
- s("div", R, [
100
+ s("div", G, [
100
101
  n(a.$slots, "body", {}, () => [
101
102
  n(a.$slots, "default")
102
103
  ])
@@ -104,10 +105,10 @@ const z = { class: "sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto"
104
105
  ])
105
106
  ])
106
107
  ]),
107
- s("div", E, [
108
+ s("div", R, [
108
109
  n(a.$slots, "footer", {}, () => [
109
- s("div", q, [
110
- e.showCancel ? (r(), m(w, {
110
+ s("div", Y, [
111
+ e.showCancel ? (r(), m(h, {
111
112
  key: 0,
112
113
  "center-label": "",
113
114
  theme: "light",
@@ -119,7 +120,7 @@ const z = { class: "sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto"
119
120
  ]),
120
121
  _: 1
121
122
  })) : x("", !0),
122
- e.showConfirm ? (r(), m(w, {
123
+ e.showConfirm ? (r(), m(h, {
123
124
  key: 1,
124
125
  "center-label": "",
125
126
  theme: e.confirmTheme,
@@ -159,4 +160,4 @@ const z = { class: "sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto"
159
160
  export {
160
161
  A as _
161
162
  };
162
- //# sourceMappingURL=UiModal.vue_vue_type_script_setup_true_lang-CMk62qeq.js.map
163
+ //# sourceMappingURL=UiModal.vue_vue_type_script_setup_true_lang-SAo39zpS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiModal.vue_vue_type_script_setup_true_lang-CMk62qeq.js","sources":["../src/components/UiModal.vue"],"sourcesContent":["<template>\n <TransitionRoot as=\"template\" :show=\"modelValue\">\n <Dialog as=\"div\" class=\"sl-relative sl-z-50\" @close=\"onClose\" :initial-focus=\"initialFocusElement\">\n <TransitionChild as=\"template\" enter=\"ease-out duration-300\" enter-from=\"opacity-0\" enter-to=\"opacity-100\"\n leave=\"ease-in duration-200\" leave-from=\"opacity-100\" leave-to=\"opacity-0\">\n <div class=\"sl-fixed sl-inset-0 sl-bg-gray-500/75 sl-transition-opacity\" />\n </TransitionChild>\n\n <div class=\"sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto\">\n <div class=\"sl-flex sl-min-h-full sl-items-center sl-justify-center sl-p-4 sl-text-center\"\n :class=\"[position === 'top' ? 'sm:sl-items-start sm:sl-pt-16' : 'sm:sl-items-center']\">\n <TransitionChild as=\"template\" enter=\"ease-out duration-300\"\n enter-from=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enter-to=\"opacity-100 translate-y-0 sm:scale-100\" leave=\"ease-in duration-200\"\n leave-from=\"opacity-100 translate-y-0 sm:scale-100\" leave-to=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\">\n <DialogPanel\n :class=\"['sl-relative sl-transform sl-overflow-hidden sl-rounded-lg sl-bg-white sl-text-left sl-shadow-xl sl-transition-all sl-w-full', size]\">\n <div class=\"sl-bg-white\">\n <div class=\"sl-px-4 sl-pt-5 sl-pb-4 sm:sl-p-6 sm:sl-pb-4\">\n <div class=\"sm:sl-flex sm:sl-items-start\">\n <div class=\"sl-mx-auto sl-flex sl-h-12 sl-w-12 sl-flex-shrink-0 sl-items-center sl-justify-center sl-rounded-full sl-bg-gray-100 sm:sl-mx-0 sm:sl-h-10 sm:sl-w-10\">\n <slot name=\"icon\" />\n </div>\n <div class=\"sl-mt-3 sl-text-center sm:sl-ml-4 sm:sl-mt-0 sm:sl-text-left sl-w-full\">\n <DialogTitle as=\"h3\" class=\"sl-text-base sl-font-semibold sl-leading-6 sl-text-gray-900\">\n <slot name=\"header\" />\n </DialogTitle>\n <div class=\"sl-mt-2\">\n <slot name=\"body\">\n <slot />\n </slot>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sl-px-4 sl-py-3 sm:sl-flex sm:sl-flex-row-reverse sm:sl-px-6\">\n <slot name=\"footer\">\n <div class=\"sl-flex sl-w-full sl-justify-end sl-gap-3\">\n <UiButton v-if=\"showCancel\" center-label theme=\"light\" :outlined=\"true\" @button-click=\"onClose\">\n {{ cancelText }}\n </UiButton>\n <UiButton v-if=\"showConfirm\" center-label :theme=\"confirmTheme\" :outlined=\"false\" @button-click=\"onConfirm\">\n {{ confirmText }}\n </UiButton>\n </div>\n </slot>\n </div>\n </div>\n <button ref=\"fallbackFocusRef\" class=\"sl-sr-only\">Close</button>\n </DialogPanel>\n </TransitionChild>\n </div>\n </div>\n </Dialog>\n </TransitionRoot>\n</template>\n\n<script setup lang=\"ts\">\nimport { Dialog, DialogPanel, DialogTitle, TransitionChild, TransitionRoot } from '@headlessui/vue';\nimport { ref, computed } from 'vue';\nimport type { Theme } from '@/types/ui';\nimport UiButton from '@/components/UiButton.vue';\n\ndefineProps({\n modelValue: { type: Boolean, required: true },\n size: {\n type: String,\n default: 'sm:max-w-lg',\n validator: (value: string) => [\n 'sm:max-w-sm','sm:max-w-md','sm:max-w-lg','sm:max-w-xl','sm:max-w-2xl','sm:max-w-3xl','sm:max-w-4xl','sm:max-w-5xl','sm:max-w-6xl','sm:max-w-7xl'\n ].includes(value)\n },\n position: { type: String, default: 'center', validator: (value: string) => ['center', 'top'].includes(value) },\n showCancel: { type: Boolean, default: true },\n showConfirm: { type: Boolean, default: true },\n cancelText: { type: String, default: 'Cancel' },\n confirmText: { type: String, default: 'Confirm' },\n confirmTheme: { type: String as () => Theme, default: 'primary' }\n});\n\nconst emit = defineEmits(['update:modelValue', 'cancel', 'confirm']);\nconst fallbackFocusRef = ref(null);\nconst initialFocusElement = computed(() => fallbackFocusRef.value);\n\nconst onClose = () => {\n emit('update:modelValue', false);\n emit('cancel');\n};\n\nconst onConfirm = () => {\n emit('confirm');\n emit('update:modelValue', false);\n};\n</script>\n\n<style scoped>\n</style>\n\n\n"],"names":["emit","__emit","fallbackFocusRef","ref","initialFocusElement","computed","onClose","onConfirm","_createBlock","_unref","TransitionRoot","__props","_createVNode","Dialog","TransitionChild","_cache","_createElementVNode","_hoisted_1","_normalizeClass","DialogPanel","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_renderSlot","_ctx","_hoisted_6","DialogTitle","_hoisted_7","_hoisted_8","_hoisted_9","UiButton"],"mappings":"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"}
1
+ {"version":3,"file":"UiModal.vue_vue_type_script_setup_true_lang-SAo39zpS.js","sources":["../src/components/UiModal.vue"],"sourcesContent":["<template>\n <TransitionRoot as=\"template\" :show=\"modelValue\">\n <Dialog as=\"div\" class=\"sl-relative sl-z-50\" @close=\"onClose\" :initial-focus=\"initialFocusElement\">\n <TransitionChild as=\"template\" enter=\"ease-out duration-300\" enter-from=\"opacity-0\" enter-to=\"opacity-100\"\n leave=\"ease-in duration-200\" leave-from=\"opacity-100\" leave-to=\"opacity-0\">\n <div class=\"sl-fixed sl-inset-0 sl-bg-gray-500/75 sl-transition-opacity\" />\n </TransitionChild>\n\n <div class=\"sl-fixed sl-inset-0 sl-z-10 sl-w-screen sl-overflow-y-auto\">\n <div class=\"sl-flex sl-min-h-full sl-items-center sl-justify-center sl-p-4 sl-text-center\"\n :class=\"[position === 'top' ? 'sm:sl-items-start sm:sl-pt-16' : 'sm:sl-items-center']\">\n <TransitionChild as=\"template\" enter=\"ease-out duration-300\"\n enter-from=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enter-to=\"opacity-100 translate-y-0 sm:scale-100\" leave=\"ease-in duration-200\"\n leave-from=\"opacity-100 translate-y-0 sm:scale-100\" leave-to=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\">\n <DialogPanel\n :class=\"['sl-relative sl-transform sl-overflow-hidden sl-rounded-lg sl-bg-white sl-text-left sl-shadow-xl sl-transition-all sl-w-full', size]\">\n <div class=\"sl-bg-white\">\n <div class=\"sl-px-4 sl-pt-5 sl-pb-4 sm:sl-p-6 sm:sl-pb-4\">\n <div class=\"sm:sl-flex sm:sl-items-start\">\n <div class=\"sl-mx-auto sl-flex sl-h-12 sl-w-12 sl-flex-shrink-0 sl-items-center sl-justify-center sl-rounded-full sl-bg-gray-100 sm:sl-mx-0 sm:sl-h-10 sm:sl-w-10\">\n <slot name=\"icon\" />\n </div>\n <div class=\"sl-mt-3 sl-text-center sm:sl-ml-4 sm:sl-mt-0 sm:sl-text-left sl-w-full\">\n <DialogTitle as=\"h3\" class=\"sl-text-base sl-font-semibold sl-leading-6 sl-text-gray-900\">\n <slot name=\"header\" />\n </DialogTitle>\n <div class=\"sl-mt-2\">\n <slot name=\"body\">\n <slot />\n </slot>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sl-px-4 sl-py-3 sm:sl-flex sm:sl-flex-row-reverse sm:sl-px-6\">\n <slot name=\"footer\">\n <div class=\"sl-flex sl-w-full sl-justify-end sl-gap-3\">\n <UiButton v-if=\"showCancel\" center-label theme=\"light\" :outlined=\"true\" @button-click=\"onClose\">\n {{ cancelText }}\n </UiButton>\n <UiButton v-if=\"showConfirm\" center-label :theme=\"confirmTheme\" :outlined=\"false\" @button-click=\"onConfirm\">\n {{ confirmText }}\n </UiButton>\n </div>\n </slot>\n </div>\n </div>\n <button ref=\"fallbackFocusRef\" class=\"sl-sr-only\">Close</button>\n </DialogPanel>\n </TransitionChild>\n </div>\n </div>\n </Dialog>\n </TransitionRoot>\n</template>\n\n<script setup lang=\"ts\">\nimport { Dialog, DialogPanel, DialogTitle, TransitionChild, TransitionRoot } from '@headlessui/vue';\nimport { ref, computed } from 'vue';\nimport type { Theme } from '@/types/ui';\nimport UiButton from '@/components/UiButton.vue';\n\ndefineProps({\n modelValue: { type: Boolean, required: true },\n size: {\n type: String,\n default: 'sm:max-w-lg',\n validator: (value: string) => [\n 'sm:max-w-sm','sm:max-w-md','sm:max-w-lg','sm:max-w-xl','sm:max-w-2xl','sm:max-w-3xl','sm:max-w-4xl','sm:max-w-5xl','sm:max-w-6xl','sm:max-w-7xl'\n ].includes(value)\n },\n position: { type: String, default: 'center', validator: (value: string) => ['center', 'top'].includes(value) },\n showCancel: { type: Boolean, default: true },\n showConfirm: { type: Boolean, default: true },\n cancelText: { type: String, default: 'Cancel' },\n confirmText: { type: String, default: 'Confirm' },\n confirmTheme: { type: String as () => Theme, default: 'primary' }\n});\n\nconst emit = defineEmits(['update:modelValue', 'cancel', 'confirm']);\nconst fallbackFocusRef = ref(null);\nconst initialFocusElement = computed(() => fallbackFocusRef.value);\n\nconst onClose = () => {\n emit('update:modelValue', false);\n emit('cancel');\n};\n\nconst onConfirm = () => {\n emit('confirm');\n emit('update:modelValue', false);\n};\n</script>\n\n<style scoped>\n</style>\n\n\n"],"names":["emit","__emit","fallbackFocusRef","ref","initialFocusElement","computed","onClose","onConfirm","_createBlock","_unref","TransitionRoot","__props","_createVNode","Dialog","TransitionChild","_cache","_createElementVNode","_hoisted_1","_normalizeClass","DialogPanel","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_renderSlot","_ctx","_hoisted_6","DialogTitle","_hoisted_7","_hoisted_8","_hoisted_9","UiButton"],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { createElementBlock as e, openBlock as r, createElementVNode as o } from "vue";
2
+ function a(t, n) {
3
+ return r(), e("svg", {
4
+ xmlns: "http://www.w3.org/2000/svg",
5
+ fill: "none",
6
+ viewBox: "0 0 24 24",
7
+ "stroke-width": "1.5",
8
+ stroke: "currentColor",
9
+ "aria-hidden": "true",
10
+ "data-slot": "icon"
11
+ }, [
12
+ o("path", {
13
+ "stroke-linecap": "round",
14
+ "stroke-linejoin": "round",
15
+ d: "M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"
16
+ })
17
+ ]);
18
+ }
19
+ function l(t, n) {
20
+ return r(), e("svg", {
21
+ xmlns: "http://www.w3.org/2000/svg",
22
+ fill: "none",
23
+ viewBox: "0 0 24 24",
24
+ "stroke-width": "1.5",
25
+ stroke: "currentColor",
26
+ "aria-hidden": "true",
27
+ "data-slot": "icon"
28
+ }, [
29
+ o("path", {
30
+ "stroke-linecap": "round",
31
+ "stroke-linejoin": "round",
32
+ d: "M6 18 18 6M6 6l12 12"
33
+ })
34
+ ]);
35
+ }
36
+ export {
37
+ a,
38
+ l as r
39
+ };
40
+ //# sourceMappingURL=XMarkIcon-C4wILUsz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XMarkIcon-C4wILUsz.js","sources":["../node_modules/@heroicons/vue/24/outline/esm/Bars3Icon.js","../node_modules/@heroicons/vue/24/outline/esm/XMarkIcon.js"],"sourcesContent":["import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport default function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n \"stroke-width\": \"1.5\",\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\"\n }, [\n _createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\n })\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport default function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n \"stroke-width\": \"1.5\",\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\"\n }, [\n _createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M6 18 18 6M6 6l12 12\"\n })\n ]))\n}"],"names":["render","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode"],"mappings":";AAEe,SAASA,EAAOC,GAAMC,GAAQ;AAC3C,SAAQC,EAAU,GAAIC,EAAoB,OAAO;AAAA,IAC/C,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,aAAa;AAAA,EACjB,GAAK;AAAA,IACDC,EAAoB,QAAQ;AAAA,MAC1B,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,GAAG;AAAA,IACT,CAAK;AAAA,EACL,CAAG;AACH;AChBe,SAASL,EAAOC,GAAMC,GAAQ;AAC3C,SAAQC,EAAU,GAAIC,EAAoB,OAAO;AAAA,IAC/C,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,aAAa;AAAA,EACjB,GAAK;AAAA,IACDC,EAAoB,QAAQ;AAAA,MAC1B,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,GAAG;AAAA,IACT,CAAK;AAAA,EACL,CAAG;AACH;","x_google_ignoreList":[0,1]}