@nhtio/lucid-resourceful-vue-components 0.1.0-master-dc6af70b → 0.1.0-master-54839a90
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/{VBtn-CEYzcx0y.mjs → VBtn-C4WCntKg.mjs} +7 -7
- package/{VBtn-CEYzcx0y.mjs.map → VBtn-C4WCntKg.mjs.map} +1 -1
- package/{VDatePicker-BHcvHHhM.mjs → VDatePicker-DOCNk-HL.mjs} +61 -61
- package/{VDatePicker-BHcvHHhM.mjs.map → VDatePicker-DOCNk-HL.mjs.map} +1 -1
- package/{VEmptyState-CkYtN0q5.mjs → VEmptyState-CfouFZTg.mjs} +51 -51
- package/{VEmptyState-CkYtN0q5.mjs.map → VEmptyState-CfouFZTg.mjs.map} +1 -1
- package/{VHover-Bj6QrQff.mjs → VHover-DvUhdfsL.mjs} +3 -3
- package/{VHover-Bj6QrQff.mjs.map → VHover-DvUhdfsL.mjs.map} +1 -1
- package/{VListItem-BnxAmKd_.mjs → VListItem-BT-NXJyi.mjs} +36 -36
- package/{VListItem-BnxAmKd_.mjs.map → VListItem-BT-NXJyi.mjs.map} +1 -1
- package/{VMenu-BSB7YSpb.mjs → VMenu-Bk2NN8qb.mjs} +3 -3
- package/{VMenu-BSB7YSpb.mjs.map → VMenu-Bk2NN8qb.mjs.map} +1 -1
- package/{VPicker-DMOVvCIE.mjs → VPicker-DmY6CdER.mjs} +4 -4
- package/{VPicker-DMOVvCIE.mjs.map → VPicker-DmY6CdER.mjs.map} +1 -1
- package/{VRadioGroup-ByydeX8x.mjs → VRadioGroup-BO7XdtLS.mjs} +15 -15
- package/{VRadioGroup-ByydeX8x.mjs.map → VRadioGroup-BO7XdtLS.mjs.map} +1 -1
- package/{VRow-Dmn82Xaa.mjs → VRow-BhNJcY5-.mjs} +7 -7
- package/{VRow-Dmn82Xaa.mjs.map → VRow-BhNJcY5-.mjs.map} +1 -1
- package/{VSheet-B9ALb0PQ.mjs → VSheet-Bkr-m6FE.mjs} +2 -2
- package/{VSheet-B9ALb0PQ.mjs.map → VSheet-Bkr-m6FE.mjs.map} +1 -1
- package/{actions-BEmdy8bu.mjs → actions-ORUmfJR5.mjs} +14 -14
- package/{actions-BEmdy8bu.mjs.map → actions-ORUmfJR5.mjs.map} +1 -1
- package/{alert-DftADRGk.mjs → alert-pFT7pWTZ.mjs} +97 -94
- package/alert-pFT7pWTZ.mjs.map +1 -0
- package/{bigint-DiC37zMo.mjs → bigint-CCM0aPaS.mjs} +6 -6
- package/{bigint-DiC37zMo.mjs.map → bigint-CCM0aPaS.mjs.map} +1 -1
- package/{boolean-DZDryWHA.mjs → boolean-1-MOJPSu.mjs} +43 -43
- package/{boolean-DZDryWHA.mjs.map → boolean-1-MOJPSu.mjs.map} +1 -1
- package/{clipboard--JAZokR3.mjs → clipboard-CdGABqm1.mjs} +49 -49
- package/{clipboard--JAZokR3.mjs.map → clipboard-CdGABqm1.mjs.map} +1 -1
- package/{colorUtils-I1lKouL3.mjs → colorUtils-BdpqbLZS.mjs} +3 -3
- package/{colorUtils-I1lKouL3.mjs.map → colorUtils-BdpqbLZS.mjs.map} +1 -1
- package/{common-BDwb9uGU.mjs → common-Bi5RUD-n.mjs} +13 -13
- package/{common-BDwb9uGU.mjs.map → common-Bi5RUD-n.mjs.map} +1 -1
- package/{component-C-qp70Rp.mjs → component-DhEJuSE6.mjs} +2 -2
- package/{component-C-qp70Rp.mjs.map → component-DhEJuSE6.mjs.map} +1 -1
- package/components/autorefresh_controller.mjs +1 -1
- package/components/control_button.mjs +1 -1
- package/components/control_button_bar.mjs +2 -2
- package/components/control_menu.mjs +1 -1
- package/components/custom_field.mjs +1 -1
- package/components/exporter.mjs +1 -1
- package/components/fields/bigint.mjs +1 -1
- package/components/fields/boolean.mjs +1 -1
- package/components/fields/date.mjs +1 -1
- package/components/fields/date_time.mjs +1 -1
- package/components/fields/enum.mjs +1 -1
- package/components/fields/integer.mjs +1 -1
- package/components/fields/number.mjs +1 -1
- package/components/fields/string.mjs +1 -1
- package/components/fields/unsigned_integer.mjs +1 -1
- package/components/fields.mjs +9 -9
- package/components/form_with_validation.mjs +1 -1
- package/components/resourceful_alerter.mjs +1 -1
- package/components/resourceful_index.mjs +1 -1
- package/components/resourceful_record.mjs +2 -2
- package/components/resourceful_record_default_form.mjs +1 -1
- package/components/resourceful_record_form.mjs +1 -1
- package/components/sortable.mjs +1 -1
- package/components/svg_icon.mjs +1 -1
- package/components/timezone_picker.mjs +1 -1
- package/components.mjs +23 -23
- package/composables.mjs +11 -11
- package/{console-CAez8ceh.mjs → console-Dgoi3FwV.mjs} +2 -2
- package/{console-CAez8ceh.mjs.map → console-Dgoi3FwV.mjs.map} +1 -1
- package/{custom-Tm6_792A.mjs → custom-DQmbYYPh.mjs} +21 -21
- package/{custom-Tm6_792A.mjs.map → custom-DQmbYYPh.mjs.map} +1 -1
- package/{date-CxaBVvlO.mjs → date-E_8RP3gK.mjs} +21 -21
- package/{date-CxaBVvlO.mjs.map → date-E_8RP3gK.mjs.map} +1 -1
- package/{date_time-DhABUkGT.mjs → date_time-BmYl2TFi.mjs} +348 -348
- package/{date_time-DhABUkGT.mjs.map → date_time-BmYl2TFi.mjs.map} +1 -1
- package/{display-DazBkrbZ.mjs → display-B089h_sz.mjs} +27 -25
- package/display-B089h_sz.mjs.map +1 -0
- package/{display-DPktlWOz.mjs → display-dv4cOwRN.mjs} +9 -9
- package/{display-DPktlWOz.mjs.map → display-dv4cOwRN.mjs.map} +1 -1
- package/{display-BdjbLG1_.mjs → display-fXo4JeIS.mjs} +15 -15
- package/{display-BdjbLG1_.mjs.map → display-fXo4JeIS.mjs.map} +1 -1
- package/{elevation-DFBVIqom.mjs → elevation-YNOj0hSa.mjs} +38 -38
- package/{elevation-DFBVIqom.mjs.map → elevation-YNOj0hSa.mjs.map} +1 -1
- package/{enum-KB4xPkOL.mjs → enum-8itqseZa.mjs} +22 -22
- package/{enum-KB4xPkOL.mjs.map → enum-8itqseZa.mjs.map} +1 -1
- package/factories.mjs +1 -1
- package/{field_composer-CLJuJevf.mjs → field_composer-ugYyDQNY.mjs} +3 -3
- package/{field_composer-CLJuJevf.mjs.map → field_composer-ugYyDQNY.mjs.map} +1 -1
- package/{form-9YRVcrxM.mjs → form-BtDnRXYm.mjs} +45 -45
- package/{form-9YRVcrxM.mjs.map → form-BtDnRXYm.mjs.map} +1 -1
- package/{guards-BrpRx6ly.mjs → guards-Cby4QwzY.mjs} +2 -2
- package/{guards-BrpRx6ly.mjs.map → guards-Cby4QwzY.mjs.map} +1 -1
- package/guards.mjs +4 -4
- package/helpers.mjs +6 -6
- package/{index-BkjiQEyJ.mjs → index-3XRUa28C.mjs} +12 -12
- package/{index-BkjiQEyJ.mjs.map → index-3XRUa28C.mjs.map} +1 -1
- package/{index-DDobJ49b.mjs → index-BCQmj6cf.mjs} +13 -13
- package/{index-DDobJ49b.mjs.map → index-BCQmj6cf.mjs.map} +1 -1
- package/{index-UxsEIZVi.mjs → index-BgevbZTt.mjs} +10 -10
- package/{index-UxsEIZVi.mjs.map → index-BgevbZTt.mjs.map} +1 -1
- package/{index-CWwCXXNl.mjs → index-C-PCfO1S.mjs} +2 -2
- package/{index-CWwCXXNl.mjs.map → index-C-PCfO1S.mjs.map} +1 -1
- package/{index-DBXOwXpe.mjs → index-CSyOYGEi.mjs} +8 -8
- package/{index-DBXOwXpe.mjs.map → index-CSyOYGEi.mjs.map} +1 -1
- package/{index-DwOjHbRP.mjs → index-D9i1PRci.mjs} +5700 -5697
- package/{index-DwOjHbRP.mjs.map → index-D9i1PRci.mjs.map} +1 -1
- package/{index-BaOM0Cyz.mjs → index-DWv9iKZs.mjs} +21 -21
- package/{index-BaOM0Cyz.mjs.map → index-DWv9iKZs.mjs.map} +1 -1
- package/{index-Bs4A8qUO.mjs → index-VpcXNOpn.mjs} +2 -2
- package/{index-Bs4A8qUO.mjs.map → index-VpcXNOpn.mjs.map} +1 -1
- package/{index-BsazeUn6.mjs → index-fiZltUBs.mjs} +3 -3
- package/{index-BsazeUn6.mjs.map → index-fiZltUBs.mjs.map} +1 -1
- package/index.mjs +47 -47
- package/{integer-uzh0nwpb.mjs → integer-W2_SlKV1.mjs} +5 -5
- package/{integer-uzh0nwpb.mjs.map → integer-W2_SlKV1.mjs.map} +1 -1
- package/{mdi-C9DbASEx.mjs → mdi-DC1jeTJJ.mjs} +18 -18
- package/{mdi-C9DbASEx.mjs.map → mdi-DC1jeTJJ.mjs.map} +1 -1
- package/{number-CfHLDQFY.mjs → number-DgwZBxOw.mjs} +85 -85
- package/{number-CfHLDQFY.mjs.map → number-DgwZBxOw.mjs.map} +1 -1
- package/package.json +32 -32
- package/{position-CPuNp03H.mjs → position-B9VPkbhU.mjs} +2 -2
- package/{position-CPuNp03H.mjs.map → position-B9VPkbhU.mjs.map} +1 -1
- package/private/control-button-bar/props.d.ts +10 -10
- package/private/fields/bigint.d.ts +128 -128
- package/private/fields/boolean.d.ts +68 -68
- package/private/fields/common.d.ts +16 -16
- package/private/fields/custom.d.ts +2 -2
- package/private/fields/date.d.ts +24 -24
- package/private/fields/date_time.d.ts +24 -24
- package/private/fields/enum.d.ts +68 -68
- package/private/fields/integer.d.ts +107 -107
- package/private/fields/multiple.d.ts +17 -17
- package/private/fields/number.d.ts +46 -46
- package/private/fields/read_mode_renderer.d.ts +17 -17
- package/private/fields/string.d.ts +24 -24
- package/private/fields/unsigned_integer.d.ts +107 -107
- package/private/filtration/filter_group_condition_element.d.ts +36 -36
- package/private/resourceful-index/index.d.ts +17 -17
- package/private/resourceful-index/partials/_controls.d.ts +1 -1
- package/private/resourceful-index/partials/_per_page_selector.d.ts +1 -1
- package/private/resourceful-index/props.d.ts +34 -34
- package/private/resourceful-record/form.d.ts +12 -12
- package/private/resourceful-record/index.d.ts +13 -13
- package/private/resourceful-record/props.d.ts +20 -20
- package/private/sortable/index.d.ts +1 -1
- package/{props-KPFuptNy.mjs → props-COvhL78L.mjs} +8 -8
- package/{props-KPFuptNy.mjs.map → props-COvhL78L.mjs.map} +1 -1
- package/{props-Cq9daNwa.mjs → props-GYFmAF5-.mjs} +6 -6
- package/{props-Cq9daNwa.mjs.map → props-GYFmAF5-.mjs.map} +1 -1
- package/{renderers-COT3aAu3.mjs → renderers-BP4li2WT.mjs} +13 -13
- package/{renderers-COT3aAu3.mjs.map → renderers-BP4li2WT.mjs.map} +1 -1
- package/{string-DvwPf_Ob.mjs → string-RfpfCwEn.mjs} +180 -180
- package/{string-DvwPf_Ob.mjs.map → string-RfpfCwEn.mjs.map} +1 -1
- package/{unsigned_integer-C9nrNAn_.mjs → unsigned_integer-Cg6tbRJj.mjs} +4 -4
- package/{unsigned_integer-C9nrNAn_.mjs.map → unsigned_integer-Cg6tbRJj.mjs.map} +1 -1
- package/useRender-CfNJA_8a.mjs +9 -0
- package/{useRender-Dpj9Jrbr.mjs.map → useRender-CfNJA_8a.mjs.map} +1 -1
- package/{utils-DxV2ZNaE.mjs → utils-D3ZGaTyv.mjs} +50 -50
- package/{utils-DxV2ZNaE.mjs.map → utils-D3ZGaTyv.mjs.map} +1 -1
- package/{validation-CZ6xx4aX.mjs → validation-BF_JkNWB.mjs} +4 -4
- package/{validation-CZ6xx4aX.mjs.map → validation-BF_JkNWB.mjs.map} +1 -1
- package/alert-DftADRGk.mjs.map +0 -1
- package/display-DazBkrbZ.mjs.map +0 -1
- package/useRender-Dpj9Jrbr.mjs +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard--JAZokR3.mjs","sources":["../node_modules/.pnpm/vuetify@3.10.9_typescript@5.9.3_vue@3.5.24_typescript@5.9.3_/node_modules/vuetify/lib/composables/layout.js","../node_modules/.pnpm/vuetify@3.10.9_typescript@5.9.3_vue@3.5.24_typescript@5.9.3_/node_modules/vuetify/lib/components/VSnackbar/VSnackbar.js","../src/private/ux/clipboard.ts"],"sourcesContent":["// Composables\nimport { useResizeObserver } from \"./resizeObserver.js\"; // Utilities\nimport { computed, inject, onActivated, onBeforeUnmount, onDeactivated, onMounted, provide, reactive, ref, shallowRef, toRef, useId } from 'vue';\nimport { consoleWarn, convertToUnit, findChildrenWithProvide, getCurrentInstance, propsFactory } from \"../util/index.js\"; // Types\nexport const VuetifyLayoutKey = Symbol.for('vuetify:layout');\nexport const VuetifyLayoutItemKey = Symbol.for('vuetify:layout-item');\nconst ROOT_ZINDEX = 1000;\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => []\n },\n fullHeight: Boolean\n}, 'layout');\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String\n },\n order: {\n type: [Number, String],\n default: 0\n },\n absolute: Boolean\n}, 'layout-item');\nexport function useLayout() {\n const layout = inject(VuetifyLayoutKey);\n if (!layout) throw new Error('[Vuetify] Could not find injected layout');\n return {\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles\n };\n}\nexport function useLayoutItem(options) {\n const layout = inject(VuetifyLayoutKey);\n if (!layout) throw new Error('[Vuetify] Could not find injected layout');\n const id = options.id ?? `layout-item-${useId()}`;\n const vm = getCurrentInstance('useLayoutItem');\n provide(VuetifyLayoutItemKey, {\n id\n });\n const isKeptAlive = shallowRef(false);\n onDeactivated(() => isKeptAlive.value = true);\n onActivated(() => isKeptAlive.value = false);\n const {\n layoutItemStyles,\n layoutItemScrimStyles\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id\n });\n onBeforeUnmount(() => layout.unregister(id));\n return {\n layoutItemStyles,\n layoutRect: layout.layoutRect,\n layoutItemScrimStyles\n };\n}\nconst generateLayers = (layout, positions, layoutSizes, activeItems) => {\n let previousLayer = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n };\n const layers = [{\n id: '',\n layer: {\n ...previousLayer\n }\n }];\n for (const id of layout) {\n const position = positions.get(id);\n const amount = layoutSizes.get(id);\n const active = activeItems.get(id);\n if (!position || !amount || !active) continue;\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0)\n };\n layers.push({\n id,\n layer\n });\n previousLayer = layer;\n }\n return layers;\n};\nexport function createLayout(props) {\n const parentLayout = inject(VuetifyLayoutKey, null);\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX);\n const registered = ref([]);\n const positions = reactive(new Map());\n const layoutSizes = reactive(new Map());\n const priorities = reactive(new Map());\n const activeItems = reactive(new Map());\n const disabledTransitions = reactive(new Map());\n const {\n resizeRef,\n contentRect: layoutRect\n } = useResizeObserver();\n const computedOverlaps = computed(() => {\n const map = new Map();\n const overlaps = props.overlaps ?? [];\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':');\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;\n const topPosition = positions.get(top);\n const bottomPosition = positions.get(bottom);\n const topAmount = layoutSizes.get(top);\n const bottomAmount = layoutSizes.get(bottom);\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;\n map.set(bottom, {\n position: topPosition.value,\n amount: parseInt(topAmount.value, 10)\n });\n map.set(top, {\n position: bottomPosition.value,\n amount: -parseInt(bottomAmount.value, 10)\n });\n }\n return map;\n });\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b);\n const layout = [];\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p);\n layout.push(...items);\n }\n return generateLayers(layout, positions, layoutSizes, activeItems);\n });\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value);\n });\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer;\n });\n const mainStyles = toRef(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : {\n transition: 'none'\n })\n };\n });\n const items = computed(() => {\n return layers.value.slice(1).map((_ref, index) => {\n let {\n id\n } = _ref;\n const {\n layer\n } = layers.value[index];\n const size = layoutSizes.get(id);\n const position = positions.get(id);\n return {\n id,\n ...layer,\n size: Number(size.value),\n position: position.value\n };\n });\n });\n const getLayoutItem = id => {\n return items.value.find(item => item.id === id);\n };\n const rootVm = getCurrentInstance('createLayout');\n const isMounted = shallowRef(false);\n onMounted(() => {\n isMounted.value = true;\n });\n provide(VuetifyLayoutKey, {\n register: (vm, _ref2) => {\n let {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute\n } = _ref2;\n priorities.set(id, order);\n positions.set(id, position);\n layoutSizes.set(id, layoutSize);\n activeItems.set(id, active);\n disableTransitions && disabledTransitions.set(id, disableTransitions);\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode);\n const instanceIndex = instances.indexOf(vm);\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id);else registered.value.push(id);\n const index = computed(() => items.value.findIndex(i => i.id === id));\n const zIndex = computed(() => rootZIndex.value + layers.value.length * 2 - index.value * 2);\n const layoutItemStyles = computed(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right';\n const isOppositeHorizontal = position.value === 'right';\n const isOppositeVertical = position.value === 'bottom';\n const size = elementSize.value ?? layoutSize.value;\n const unit = size === 0 ? '%' : 'px';\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -(size === 0 ? 100 : size)) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}${unit})`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : {\n transition: 'none'\n })\n };\n if (!isMounted.value) return styles;\n const item = items.value[index.value];\n if (!item) consoleWarn(`[Vuetify] Could not find layout item \"${id}\"`);\n const overlap = computedOverlaps.value.get(id);\n if (overlap) {\n item[overlap.position] += overlap.amount;\n }\n return {\n ...styles,\n height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : undefined\n };\n });\n const layoutItemScrimStyles = computed(() => ({\n zIndex: zIndex.value - 1\n }));\n return {\n layoutItemStyles,\n layoutItemScrimStyles,\n zIndex\n };\n },\n unregister: id => {\n priorities.delete(id);\n positions.delete(id);\n layoutSizes.delete(id);\n activeItems.delete(id);\n disabledTransitions.delete(id);\n registered.value = registered.value.filter(v => v !== id);\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex\n });\n const layoutClasses = toRef(() => ['v-layout', {\n 'v-layout--full-height': props.fullHeight\n }]);\n const layoutStyles = toRef(() => ({\n zIndex: parentLayout ? rootZIndex.value : undefined,\n position: parentLayout ? 'relative' : undefined,\n overflow: parentLayout ? 'hidden' : undefined\n }));\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef\n };\n}\n//# sourceMappingURL=layout.js.map","import { createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VSnackbar.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\";\nimport { VOverlay } from \"../VOverlay/index.js\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.js\";\nimport { VProgressLinear } from \"../VProgressLinear/index.js\"; // Composables\nimport { useLayout } from \"../../composables/index.js\";\nimport { forwardRefs } from \"../../composables/forwardRefs.js\";\nimport { VuetifyLayoutKey } from \"../../composables/layout.js\";\nimport { makeLocationProps } from \"../../composables/location.js\";\nimport { makePositionProps, usePosition } from \"../../composables/position.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { useScopeId } from \"../../composables/scopeId.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { useToggleScope } from \"../../composables/toggleScope.js\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.js\"; // Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { genericComponent, omit, propsFactory, refElement, useRender } from \"../../util/index.js\"; // Types\nfunction useCountdown(milliseconds) {\n const time = shallowRef(milliseconds());\n let timer = -1;\n function clear() {\n clearInterval(timer);\n }\n function reset() {\n clear();\n nextTick(() => time.value = milliseconds());\n }\n function start(el) {\n const style = el ? getComputedStyle(el) : {\n transitionDuration: 0.2\n };\n const interval = parseFloat(style.transitionDuration) * 1000 || 200;\n clear();\n if (time.value <= 0) return;\n const startTime = performance.now();\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval;\n time.value = Math.max(milliseconds() - elapsed, 0);\n if (time.value <= 0) clear();\n }, interval);\n }\n onScopeDispose(clear);\n return {\n clear,\n time,\n start,\n reset\n };\n}\nexport const makeVSnackbarProps = propsFactory({\n /* @deprecated */\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000\n },\n vertical: Boolean,\n ...makeLocationProps({\n location: 'bottom'\n }),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition'\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy', 'stickToTarget'])\n}, 'VSnackbar');\nexport const VSnackbar = genericComponent()({\n name: 'VSnackbar',\n props: makeVSnackbarProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n positionClasses\n } = usePosition(props);\n const {\n scopeId\n } = useScopeId();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n roundedClasses\n } = useRounded(props);\n const countdown = useCountdown(() => Number(props.timeout));\n const overlay = ref();\n const timerRef = ref();\n const isHovering = shallowRef(false);\n const startY = shallowRef(0);\n const mainStyles = ref();\n const hasLayout = inject(VuetifyLayoutKey, undefined);\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout();\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value;\n });\n });\n watch(isActive, startTimeout);\n watch(() => props.timeout, startTimeout);\n onMounted(() => {\n if (isActive.value) startTimeout();\n });\n let activeTimeout = -1;\n function startTimeout() {\n countdown.reset();\n window.clearTimeout(activeTimeout);\n const timeout = Number(props.timeout);\n if (!isActive.value || timeout === -1) return;\n const element = refElement(timerRef.value);\n countdown.start(element);\n activeTimeout = window.setTimeout(() => {\n isActive.value = false;\n }, timeout);\n }\n function clearTimeout() {\n countdown.reset();\n window.clearTimeout(activeTimeout);\n }\n function onPointerenter() {\n isHovering.value = true;\n clearTimeout();\n }\n function onPointerleave() {\n isHovering.value = false;\n startTimeout();\n }\n function onTouchstart(event) {\n startY.value = event.touches[0].clientY;\n }\n function onTouchend(event) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false;\n }\n }\n function onAfterLeave() {\n if (isHovering.value) onPointerleave();\n }\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true;\n return acc;\n }, {});\n });\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n const hasContent = !!(slots.default || slots.text || props.text);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-snackbar', {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--timer': !!props.timer,\n 'v-snackbar--vertical': props.vertical\n }, locationClasses.value, positionClasses.value, props.class],\n \"style\": [mainStyles.value, props.style]\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"contentProps\": mergeProps({\n class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],\n style: [colorStyles.value],\n onPointerenter,\n onPointerleave\n }, overlayProps.contentProps),\n \"persistent\": true,\n \"noClickAnimation\": true,\n \"scrim\": false,\n \"scrollStrategy\": \"none\",\n \"_disableGlobalStack\": true,\n \"onTouchstartPassive\": onTouchstart,\n \"onTouchend\": onTouchend,\n \"onAfterLeave\": onAfterLeave\n }, scopeId), {\n default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && _createElementVNode(\"div\", {\n \"key\": \"timer\",\n \"class\": \"v-snackbar__timer\"\n }, [_createVNode(VProgressLinear, {\n \"ref\": timerRef,\n \"color\": typeof props.timer === 'string' ? props.timer : 'info',\n \"max\": props.timeout,\n \"modelValue\": countdown.time.value\n }, null)]), hasContent && _createElementVNode(\"div\", {\n \"key\": \"content\",\n \"class\": \"v-snackbar__content\",\n \"role\": \"status\",\n \"aria-live\": \"polite\"\n }, [slots.text?.() ?? props.text, slots.default?.()]), slots.actions && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n variant: 'text',\n ripple: false,\n slim: true\n }\n }\n }, {\n default: () => [_createElementVNode(\"div\", {\n \"class\": \"v-snackbar__actions\"\n }, [slots.actions({\n isActive\n })])]\n })],\n activator: slots.activator\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VSnackbar.js.map","import { ref, h } from 'vue'\nimport { useI18n } from '../ioc'\nimport { SvgIcon } from '../svg-icon'\nimport { toUnreactive } from '../common/utils'\nimport { VIcon } from 'vuetify/components/VIcon'\nimport { VSnackbar } from 'vuetify/components/VSnackbar'\nimport { IN_BROWSER } from '@nhtio/vuetifiable/util/globals'\nimport { mdiCheckboxMarkedCircleOutline, mdiAlert } from '@mdi/js'\nimport { makeVSnackbarProps } from '@nhtio/vuetifiable/components/VSnackbar/VSnackbar'\nimport type { MaybeRef, ExtractPublicPropTypes } from 'vue'\n\n/**\n * Copies text to the system clipboard using multiple fallback strategies for maximum compatibility.\n *\n * This function implements a progressive enhancement approach with three fallback methods:\n * 1. Modern Clipboard API (preferred) - Most secure, requires HTTPS/localhost\n * 2. Document.execCommand('copy') - Legacy browser support\n * 3. Manual prompt fallback - Ultimate compatibility when all else fails\n *\n * @param text - The text content to copy to clipboard\n * @param onSuccess - Optional callback executed when copy operation succeeds\n * @param onFailure - Optional callback executed when copy operation fails, receives error details\n *\n * @example\n * ```typescript\n * // Basic usage\n * copyToClipboard('Hello World!')\n *\n * // With callbacks\n * copyToClipboard(\n * 'Important data',\n * () => console.log('Copied successfully!'),\n * (error) => console.error('Copy failed:', error.message)\n * )\n *\n * // In Vue component with user feedback\n * const handleCopy = (text: string) => {\n * copyToClipboard(\n * text,\n * () => showNotification('Copied to clipboard!'),\n * (error) => showNotification(`Copy failed: ${error.message}`)\n * )\n * }\n * ```\n *\n * @remarks\n * - Clipboard API requires secure context (HTTPS or localhost)\n * - execCommand fallback works in older browsers but is deprecated\n * - Manual prompt ensures functionality even in restricted environments\n * - SSR-safe with proper browser environment detection\n *\n * @public\n */\nexport const copyToClipboard = (\n text: string,\n onSuccess?: () => void,\n onFailure?: (error: Error) => void\n): void => {\n // If not in a browser environment, we cannot access the clipboard\n if (!IN_BROWSER) {\n onFailure?.(new Error('Not in a browser environment'))\n return\n }\n\n // Method 1: Modern Clipboard API (most secure and reliable)\n if (navigator.clipboard && window.isSecureContext) {\n navigator.clipboard\n .writeText(text)\n .then(() => {\n onSuccess?.()\n })\n .catch((err) => {\n onFailure?.(new Error(`Clipboard API failed: ${err.message}`))\n })\n return\n }\n\n // Method 2: execCommand fallback (for older browsers)\n const textArea = document.createElement('textarea')\n textArea.value = text\n\n // Make the textarea invisible but still selectable\n textArea.style.position = 'fixed'\n textArea.style.top = '0'\n textArea.style.left = '0'\n textArea.style.width = '2em'\n textArea.style.height = '2em'\n textArea.style.padding = '0'\n textArea.style.border = 'none'\n textArea.style.outline = 'none'\n textArea.style.boxShadow = 'none'\n textArea.style.background = 'transparent'\n\n document.body.appendChild(textArea)\n textArea.focus()\n textArea.select()\n\n try {\n const successful = document.execCommand('copy')\n document.body.removeChild(textArea)\n\n if (successful) {\n onSuccess?.()\n } else {\n onFailure?.(new Error('execCommand copy failed'))\n }\n } catch (err) {\n document.body.removeChild(textArea)\n\n // Method 3: Prompt user to copy manually (ultimate fallback)\n try {\n prompt('Copy to clipboard: Ctrl+C / Cmd+C, Enter', text)\n // We can't know if the user actually copied, so we call success optimistically\n onSuccess?.()\n } catch (promptErr) {\n onFailure?.(new Error(`All copy methods failed: ${err}`))\n }\n }\n}\n\nexport type VSnackbarPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVSnackbarProps>>\n\nexport type ClipboardComposableOptions = Pick<\n VSnackbarPublicProps,\n 'timeout' | 'timer' | 'variant' | 'location' | 'tile' | 'variant'\n>\n\nconst successIcon = h(SvgIcon, { d: mdiCheckboxMarkedCircleOutline })\nconst failureIcon = h(SvgIcon, { d: mdiAlert })\n\n/**\n * Vue composable for clipboard operations with integrated visual feedback via Vuetify snackbars.\n *\n * This composable provides a complete clipboard solution that combines the robust `copyToClipboard`\n * utility with automatic user feedback through customizable success/error snackbars. It uses Vue's\n * render functions to provide maximum flexibility in how and where feedback is displayed.\n *\n * @param options - Configuration options extending VSnackbar props (reactive or static)\n * @returns Object containing copy function and render function for feedback UI\n *\n * @example\n * Basic usage with default styling:\n * ```vue\n * <template>\n * <v-btn @click=\"copy('Hello World!')\">Copy Text</v-btn>\n * <component :is=\"renderClipboardFeedback()\" />\n * </template>\n *\n * <script setup>\n * const { copy, renderClipboardFeedback } = useClipboard()\n * </script>\n * ```\n *\n * @example\n * With custom snackbar configuration:\n * ```vue\n * <template>\n * <v-btn @click=\"copy(selectedText)\">Copy Selection</v-btn>\n * <component :is=\"renderClipboardFeedback()\" />\n * </template>\n *\n * <script setup>\n * const { copy, renderClipboardFeedback } = useClipboard({\n * timeout: 8000,\n * location: 'top',\n * variant: 'outlined'\n * })\n * </script>\n * ```\n *\n * @example\n * Reactive configuration with computed options:\n * ```vue\n * <script setup>\n * const isDarkMode = ref(true)\n * const snackbarOptions = computed(() => ({\n * timeout: isDarkMode.value ? 6000 : 4000,\n * variant: isDarkMode.value ? 'outlined' : 'elevated'\n * }))\n *\n * const { copy, renderClipboardFeedback } = useClipboard(snackbarOptions)\n * </script>\n * ```\n *\n * @remarks\n * - Automatically validates timeout values to ensure good UX (4-10 second range)\n * - Provides mutual exclusion between success and error snackbars\n * - Uses headless UI pattern allowing flexible integration into any component hierarchy\n * - Supports all VSnackbar props for complete customization control\n * - Integrates with i18n system for internationalized feedback messages\n * - Built on the robust `copyToClipboard` utility with comprehensive browser fallbacks\n *\n * @public\n */\nexport const useClipboard = (options: MaybeRef<ClipboardComposableOptions> = {}) => {\n const t = useI18n()\n const showingSuccessSnackbar = ref(false)\n const getFixedOptions = () => {\n const opts = toUnreactive(options)\n if ('timeout' in opts && 'undefined' !== typeof opts.timeout && opts.timeout !== null) {\n const numericTimeout = Number.parseInt(opts.timeout.toString())\n if (Number.isNaN(numericTimeout) || numericTimeout < 4000 || numericTimeout > 10000) {\n opts.timeout = 5000\n }\n } else {\n opts.timeout = 5000\n }\n return opts\n }\n const renderSuccessSnackbar = () =>\n h(\n VSnackbar,\n {\n modelValue: showingSuccessSnackbar.value,\n color: 'success',\n ...getFixedOptions(),\n ...{\n 'onUpdate:modelValue': (value: boolean) => (showingSuccessSnackbar.value = value),\n },\n },\n () =>\n h('div', { class: ['d-flex', 'align-center', 'justify-start'] }, [\n h(VIcon, { class: ['me-2', 'flex-grow-0'], icon: () => successIcon }),\n h(\n 'span',\n { class: ['flex-grow-1', 'text-center'] },\n t('resourceful.clipboard.copiedToClipboard')\n ),\n ])\n )\n const showingFailureSnackbar = ref(false)\n const renderFailureSnackbar = () =>\n h(\n VSnackbar,\n {\n modelValue: showingFailureSnackbar.value,\n color: 'error',\n ...getFixedOptions(),\n ...{\n 'onUpdate:modelValue': (value: boolean) => (showingFailureSnackbar.value = value),\n },\n },\n () =>\n h('div', { class: ['d-flex', 'align-center', 'justify-start'] }, [\n h(VIcon, { class: ['me-2', 'flex-grow-0'], icon: () => failureIcon }),\n h(\n 'span',\n { class: ['flex-grow-1', 'text-center'] },\n t('resourceful.clipboard.copyFailed')\n ),\n ])\n )\n const renderClipboardFeedback = () =>\n showingSuccessSnackbar.value\n ? renderSuccessSnackbar()\n : showingFailureSnackbar.value\n ? renderFailureSnackbar()\n : null\n const copyWithFeedback = (text: string) => {\n copyToClipboard(\n text,\n () => {\n showingSuccessSnackbar.value = true\n showingFailureSnackbar.value = false\n },\n () => {\n showingFailureSnackbar.value = true\n showingSuccessSnackbar.value = false\n }\n )\n }\n return {\n copy: copyWithFeedback,\n renderClipboardFeedback,\n }\n}\n"],"names":["VuetifyLayoutKey","VuetifyLayoutItemKey","makeLayoutItemProps","propsFactory","useLayout","layout","inject","useLayoutItem","options","id","useId","vm","getCurrentInstance","provide","isKeptAlive","shallowRef","onDeactivated","onActivated","layoutItemStyles","layoutItemScrimStyles","computed","onBeforeUnmount","useCountdown","milliseconds","time","timer","clear","reset","nextTick","start","el","style","interval","startTime","elapsed","onScopeDispose","makeVSnackbarProps","makeLocationProps","makePositionProps","makeRoundedProps","makeVariantProps","makeThemeProps","omit","makeVOverlayProps","VSnackbar","genericComponent","v","props","_ref","slots","isActive","useProxiedModel","positionClasses","usePosition","scopeId","useScopeId","themeClasses","provideTheme","colorClasses","colorStyles","variantClasses","useVariant","roundedClasses","useRounded","countdown","overlay","ref","timerRef","isHovering","startY","mainStyles","hasLayout","useToggleScope","watchEffect","watch","startTimeout","onMounted","activeTimeout","timeout","element","refElement","clearTimeout","onPointerenter","onPointerleave","onTouchstart","event","onTouchend","onAfterLeave","locationClasses","acc","loc","useRender","overlayProps","VOverlay","hasContent","_createVNode","_mergeProps","$event","mergeProps","genOverlays","_createElementVNode","VProgressLinear","VDefaultsProvider","forwardRefs","copyToClipboard","text","onSuccess","onFailure","IN_BROWSER","err","textArea","successful","successIcon","h","SvgIcon","mdiCheckboxMarkedCircleOutline","failureIcon","mdiAlert","useClipboard","t","useI18n","showingSuccessSnackbar","getFixedOptions","opts","toUnreactive","numericTimeout","renderSuccessSnackbar","value","VIcon","showingFailureSnackbar","renderFailureSnackbar"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"clipboard-CdGABqm1.mjs","sources":["../node_modules/.pnpm/vuetify@3.10.9_typescript@5.9.3_vue@3.5.24_typescript@5.9.3_/node_modules/vuetify/lib/composables/layout.js","../node_modules/.pnpm/vuetify@3.10.9_typescript@5.9.3_vue@3.5.24_typescript@5.9.3_/node_modules/vuetify/lib/components/VSnackbar/VSnackbar.js","../src/private/ux/clipboard.ts"],"sourcesContent":["// Composables\nimport { useResizeObserver } from \"./resizeObserver.js\"; // Utilities\nimport { computed, inject, onActivated, onBeforeUnmount, onDeactivated, onMounted, provide, reactive, ref, shallowRef, toRef, useId } from 'vue';\nimport { consoleWarn, convertToUnit, findChildrenWithProvide, getCurrentInstance, propsFactory } from \"../util/index.js\"; // Types\nexport const VuetifyLayoutKey = Symbol.for('vuetify:layout');\nexport const VuetifyLayoutItemKey = Symbol.for('vuetify:layout-item');\nconst ROOT_ZINDEX = 1000;\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => []\n },\n fullHeight: Boolean\n}, 'layout');\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String\n },\n order: {\n type: [Number, String],\n default: 0\n },\n absolute: Boolean\n}, 'layout-item');\nexport function useLayout() {\n const layout = inject(VuetifyLayoutKey);\n if (!layout) throw new Error('[Vuetify] Could not find injected layout');\n return {\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles\n };\n}\nexport function useLayoutItem(options) {\n const layout = inject(VuetifyLayoutKey);\n if (!layout) throw new Error('[Vuetify] Could not find injected layout');\n const id = options.id ?? `layout-item-${useId()}`;\n const vm = getCurrentInstance('useLayoutItem');\n provide(VuetifyLayoutItemKey, {\n id\n });\n const isKeptAlive = shallowRef(false);\n onDeactivated(() => isKeptAlive.value = true);\n onActivated(() => isKeptAlive.value = false);\n const {\n layoutItemStyles,\n layoutItemScrimStyles\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id\n });\n onBeforeUnmount(() => layout.unregister(id));\n return {\n layoutItemStyles,\n layoutRect: layout.layoutRect,\n layoutItemScrimStyles\n };\n}\nconst generateLayers = (layout, positions, layoutSizes, activeItems) => {\n let previousLayer = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n };\n const layers = [{\n id: '',\n layer: {\n ...previousLayer\n }\n }];\n for (const id of layout) {\n const position = positions.get(id);\n const amount = layoutSizes.get(id);\n const active = activeItems.get(id);\n if (!position || !amount || !active) continue;\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0)\n };\n layers.push({\n id,\n layer\n });\n previousLayer = layer;\n }\n return layers;\n};\nexport function createLayout(props) {\n const parentLayout = inject(VuetifyLayoutKey, null);\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX);\n const registered = ref([]);\n const positions = reactive(new Map());\n const layoutSizes = reactive(new Map());\n const priorities = reactive(new Map());\n const activeItems = reactive(new Map());\n const disabledTransitions = reactive(new Map());\n const {\n resizeRef,\n contentRect: layoutRect\n } = useResizeObserver();\n const computedOverlaps = computed(() => {\n const map = new Map();\n const overlaps = props.overlaps ?? [];\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':');\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;\n const topPosition = positions.get(top);\n const bottomPosition = positions.get(bottom);\n const topAmount = layoutSizes.get(top);\n const bottomAmount = layoutSizes.get(bottom);\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;\n map.set(bottom, {\n position: topPosition.value,\n amount: parseInt(topAmount.value, 10)\n });\n map.set(top, {\n position: bottomPosition.value,\n amount: -parseInt(bottomAmount.value, 10)\n });\n }\n return map;\n });\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b);\n const layout = [];\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p);\n layout.push(...items);\n }\n return generateLayers(layout, positions, layoutSizes, activeItems);\n });\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value);\n });\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer;\n });\n const mainStyles = toRef(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : {\n transition: 'none'\n })\n };\n });\n const items = computed(() => {\n return layers.value.slice(1).map((_ref, index) => {\n let {\n id\n } = _ref;\n const {\n layer\n } = layers.value[index];\n const size = layoutSizes.get(id);\n const position = positions.get(id);\n return {\n id,\n ...layer,\n size: Number(size.value),\n position: position.value\n };\n });\n });\n const getLayoutItem = id => {\n return items.value.find(item => item.id === id);\n };\n const rootVm = getCurrentInstance('createLayout');\n const isMounted = shallowRef(false);\n onMounted(() => {\n isMounted.value = true;\n });\n provide(VuetifyLayoutKey, {\n register: (vm, _ref2) => {\n let {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute\n } = _ref2;\n priorities.set(id, order);\n positions.set(id, position);\n layoutSizes.set(id, layoutSize);\n activeItems.set(id, active);\n disableTransitions && disabledTransitions.set(id, disableTransitions);\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode);\n const instanceIndex = instances.indexOf(vm);\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id);else registered.value.push(id);\n const index = computed(() => items.value.findIndex(i => i.id === id));\n const zIndex = computed(() => rootZIndex.value + layers.value.length * 2 - index.value * 2);\n const layoutItemStyles = computed(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right';\n const isOppositeHorizontal = position.value === 'right';\n const isOppositeVertical = position.value === 'bottom';\n const size = elementSize.value ?? layoutSize.value;\n const unit = size === 0 ? '%' : 'px';\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -(size === 0 ? 100 : size)) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}${unit})`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : {\n transition: 'none'\n })\n };\n if (!isMounted.value) return styles;\n const item = items.value[index.value];\n if (!item) consoleWarn(`[Vuetify] Could not find layout item \"${id}\"`);\n const overlap = computedOverlaps.value.get(id);\n if (overlap) {\n item[overlap.position] += overlap.amount;\n }\n return {\n ...styles,\n height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : undefined\n };\n });\n const layoutItemScrimStyles = computed(() => ({\n zIndex: zIndex.value - 1\n }));\n return {\n layoutItemStyles,\n layoutItemScrimStyles,\n zIndex\n };\n },\n unregister: id => {\n priorities.delete(id);\n positions.delete(id);\n layoutSizes.delete(id);\n activeItems.delete(id);\n disabledTransitions.delete(id);\n registered.value = registered.value.filter(v => v !== id);\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex\n });\n const layoutClasses = toRef(() => ['v-layout', {\n 'v-layout--full-height': props.fullHeight\n }]);\n const layoutStyles = toRef(() => ({\n zIndex: parentLayout ? rootZIndex.value : undefined,\n position: parentLayout ? 'relative' : undefined,\n overflow: parentLayout ? 'hidden' : undefined\n }));\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef\n };\n}\n//# sourceMappingURL=layout.js.map","import { createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VSnackbar.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\";\nimport { VOverlay } from \"../VOverlay/index.js\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.js\";\nimport { VProgressLinear } from \"../VProgressLinear/index.js\"; // Composables\nimport { useLayout } from \"../../composables/index.js\";\nimport { forwardRefs } from \"../../composables/forwardRefs.js\";\nimport { VuetifyLayoutKey } from \"../../composables/layout.js\";\nimport { makeLocationProps } from \"../../composables/location.js\";\nimport { makePositionProps, usePosition } from \"../../composables/position.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { useScopeId } from \"../../composables/scopeId.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { useToggleScope } from \"../../composables/toggleScope.js\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.js\"; // Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { genericComponent, omit, propsFactory, refElement, useRender } from \"../../util/index.js\"; // Types\nfunction useCountdown(milliseconds) {\n const time = shallowRef(milliseconds());\n let timer = -1;\n function clear() {\n clearInterval(timer);\n }\n function reset() {\n clear();\n nextTick(() => time.value = milliseconds());\n }\n function start(el) {\n const style = el ? getComputedStyle(el) : {\n transitionDuration: 0.2\n };\n const interval = parseFloat(style.transitionDuration) * 1000 || 200;\n clear();\n if (time.value <= 0) return;\n const startTime = performance.now();\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval;\n time.value = Math.max(milliseconds() - elapsed, 0);\n if (time.value <= 0) clear();\n }, interval);\n }\n onScopeDispose(clear);\n return {\n clear,\n time,\n start,\n reset\n };\n}\nexport const makeVSnackbarProps = propsFactory({\n /* @deprecated */\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000\n },\n vertical: Boolean,\n ...makeLocationProps({\n location: 'bottom'\n }),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition'\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy', 'stickToTarget'])\n}, 'VSnackbar');\nexport const VSnackbar = genericComponent()({\n name: 'VSnackbar',\n props: makeVSnackbarProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n positionClasses\n } = usePosition(props);\n const {\n scopeId\n } = useScopeId();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n roundedClasses\n } = useRounded(props);\n const countdown = useCountdown(() => Number(props.timeout));\n const overlay = ref();\n const timerRef = ref();\n const isHovering = shallowRef(false);\n const startY = shallowRef(0);\n const mainStyles = ref();\n const hasLayout = inject(VuetifyLayoutKey, undefined);\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout();\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value;\n });\n });\n watch(isActive, startTimeout);\n watch(() => props.timeout, startTimeout);\n onMounted(() => {\n if (isActive.value) startTimeout();\n });\n let activeTimeout = -1;\n function startTimeout() {\n countdown.reset();\n window.clearTimeout(activeTimeout);\n const timeout = Number(props.timeout);\n if (!isActive.value || timeout === -1) return;\n const element = refElement(timerRef.value);\n countdown.start(element);\n activeTimeout = window.setTimeout(() => {\n isActive.value = false;\n }, timeout);\n }\n function clearTimeout() {\n countdown.reset();\n window.clearTimeout(activeTimeout);\n }\n function onPointerenter() {\n isHovering.value = true;\n clearTimeout();\n }\n function onPointerleave() {\n isHovering.value = false;\n startTimeout();\n }\n function onTouchstart(event) {\n startY.value = event.touches[0].clientY;\n }\n function onTouchend(event) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false;\n }\n }\n function onAfterLeave() {\n if (isHovering.value) onPointerleave();\n }\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true;\n return acc;\n }, {});\n });\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n const hasContent = !!(slots.default || slots.text || props.text);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-snackbar', {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--timer': !!props.timer,\n 'v-snackbar--vertical': props.vertical\n }, locationClasses.value, positionClasses.value, props.class],\n \"style\": [mainStyles.value, props.style]\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"contentProps\": mergeProps({\n class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],\n style: [colorStyles.value],\n onPointerenter,\n onPointerleave\n }, overlayProps.contentProps),\n \"persistent\": true,\n \"noClickAnimation\": true,\n \"scrim\": false,\n \"scrollStrategy\": \"none\",\n \"_disableGlobalStack\": true,\n \"onTouchstartPassive\": onTouchstart,\n \"onTouchend\": onTouchend,\n \"onAfterLeave\": onAfterLeave\n }, scopeId), {\n default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && _createElementVNode(\"div\", {\n \"key\": \"timer\",\n \"class\": \"v-snackbar__timer\"\n }, [_createVNode(VProgressLinear, {\n \"ref\": timerRef,\n \"color\": typeof props.timer === 'string' ? props.timer : 'info',\n \"max\": props.timeout,\n \"modelValue\": countdown.time.value\n }, null)]), hasContent && _createElementVNode(\"div\", {\n \"key\": \"content\",\n \"class\": \"v-snackbar__content\",\n \"role\": \"status\",\n \"aria-live\": \"polite\"\n }, [slots.text?.() ?? props.text, slots.default?.()]), slots.actions && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n variant: 'text',\n ripple: false,\n slim: true\n }\n }\n }, {\n default: () => [_createElementVNode(\"div\", {\n \"class\": \"v-snackbar__actions\"\n }, [slots.actions({\n isActive\n })])]\n })],\n activator: slots.activator\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VSnackbar.js.map","import { ref, h } from 'vue'\nimport { useI18n } from '../ioc'\nimport { SvgIcon } from '../svg-icon'\nimport { toUnreactive } from '../common/utils'\nimport { VIcon } from 'vuetify/components/VIcon'\nimport { VSnackbar } from 'vuetify/components/VSnackbar'\nimport { IN_BROWSER } from '@nhtio/vuetifiable/util/globals'\nimport { mdiCheckboxMarkedCircleOutline, mdiAlert } from '@mdi/js'\nimport { makeVSnackbarProps } from '@nhtio/vuetifiable/components/VSnackbar/VSnackbar'\nimport type { MaybeRef, ExtractPublicPropTypes } from 'vue'\n\n/**\n * Copies text to the system clipboard using multiple fallback strategies for maximum compatibility.\n *\n * This function implements a progressive enhancement approach with three fallback methods:\n * 1. Modern Clipboard API (preferred) - Most secure, requires HTTPS/localhost\n * 2. Document.execCommand('copy') - Legacy browser support\n * 3. Manual prompt fallback - Ultimate compatibility when all else fails\n *\n * @param text - The text content to copy to clipboard\n * @param onSuccess - Optional callback executed when copy operation succeeds\n * @param onFailure - Optional callback executed when copy operation fails, receives error details\n *\n * @example\n * ```typescript\n * // Basic usage\n * copyToClipboard('Hello World!')\n *\n * // With callbacks\n * copyToClipboard(\n * 'Important data',\n * () => console.log('Copied successfully!'),\n * (error) => console.error('Copy failed:', error.message)\n * )\n *\n * // In Vue component with user feedback\n * const handleCopy = (text: string) => {\n * copyToClipboard(\n * text,\n * () => showNotification('Copied to clipboard!'),\n * (error) => showNotification(`Copy failed: ${error.message}`)\n * )\n * }\n * ```\n *\n * @remarks\n * - Clipboard API requires secure context (HTTPS or localhost)\n * - execCommand fallback works in older browsers but is deprecated\n * - Manual prompt ensures functionality even in restricted environments\n * - SSR-safe with proper browser environment detection\n *\n * @public\n */\nexport const copyToClipboard = (\n text: string,\n onSuccess?: () => void,\n onFailure?: (error: Error) => void\n): void => {\n // If not in a browser environment, we cannot access the clipboard\n if (!IN_BROWSER) {\n onFailure?.(new Error('Not in a browser environment'))\n return\n }\n\n // Method 1: Modern Clipboard API (most secure and reliable)\n if (navigator.clipboard && window.isSecureContext) {\n navigator.clipboard\n .writeText(text)\n .then(() => {\n onSuccess?.()\n })\n .catch((err) => {\n onFailure?.(new Error(`Clipboard API failed: ${err.message}`))\n })\n return\n }\n\n // Method 2: execCommand fallback (for older browsers)\n const textArea = document.createElement('textarea')\n textArea.value = text\n\n // Make the textarea invisible but still selectable\n textArea.style.position = 'fixed'\n textArea.style.top = '0'\n textArea.style.left = '0'\n textArea.style.width = '2em'\n textArea.style.height = '2em'\n textArea.style.padding = '0'\n textArea.style.border = 'none'\n textArea.style.outline = 'none'\n textArea.style.boxShadow = 'none'\n textArea.style.background = 'transparent'\n\n document.body.appendChild(textArea)\n textArea.focus()\n textArea.select()\n\n try {\n const successful = document.execCommand('copy')\n document.body.removeChild(textArea)\n\n if (successful) {\n onSuccess?.()\n } else {\n onFailure?.(new Error('execCommand copy failed'))\n }\n } catch (err) {\n document.body.removeChild(textArea)\n\n // Method 3: Prompt user to copy manually (ultimate fallback)\n try {\n prompt('Copy to clipboard: Ctrl+C / Cmd+C, Enter', text)\n // We can't know if the user actually copied, so we call success optimistically\n onSuccess?.()\n } catch (promptErr) {\n onFailure?.(new Error(`All copy methods failed: ${err}`))\n }\n }\n}\n\nexport type VSnackbarPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVSnackbarProps>>\n\nexport type ClipboardComposableOptions = Pick<\n VSnackbarPublicProps,\n 'timeout' | 'timer' | 'variant' | 'location' | 'tile' | 'variant'\n>\n\nconst successIcon = h(SvgIcon, { d: mdiCheckboxMarkedCircleOutline })\nconst failureIcon = h(SvgIcon, { d: mdiAlert })\n\n/**\n * Vue composable for clipboard operations with integrated visual feedback via Vuetify snackbars.\n *\n * This composable provides a complete clipboard solution that combines the robust `copyToClipboard`\n * utility with automatic user feedback through customizable success/error snackbars. It uses Vue's\n * render functions to provide maximum flexibility in how and where feedback is displayed.\n *\n * @param options - Configuration options extending VSnackbar props (reactive or static)\n * @returns Object containing copy function and render function for feedback UI\n *\n * @example\n * Basic usage with default styling:\n * ```vue\n * <template>\n * <v-btn @click=\"copy('Hello World!')\">Copy Text</v-btn>\n * <component :is=\"renderClipboardFeedback()\" />\n * </template>\n *\n * <script setup>\n * const { copy, renderClipboardFeedback } = useClipboard()\n * </script>\n * ```\n *\n * @example\n * With custom snackbar configuration:\n * ```vue\n * <template>\n * <v-btn @click=\"copy(selectedText)\">Copy Selection</v-btn>\n * <component :is=\"renderClipboardFeedback()\" />\n * </template>\n *\n * <script setup>\n * const { copy, renderClipboardFeedback } = useClipboard({\n * timeout: 8000,\n * location: 'top',\n * variant: 'outlined'\n * })\n * </script>\n * ```\n *\n * @example\n * Reactive configuration with computed options:\n * ```vue\n * <script setup>\n * const isDarkMode = ref(true)\n * const snackbarOptions = computed(() => ({\n * timeout: isDarkMode.value ? 6000 : 4000,\n * variant: isDarkMode.value ? 'outlined' : 'elevated'\n * }))\n *\n * const { copy, renderClipboardFeedback } = useClipboard(snackbarOptions)\n * </script>\n * ```\n *\n * @remarks\n * - Automatically validates timeout values to ensure good UX (4-10 second range)\n * - Provides mutual exclusion between success and error snackbars\n * - Uses headless UI pattern allowing flexible integration into any component hierarchy\n * - Supports all VSnackbar props for complete customization control\n * - Integrates with i18n system for internationalized feedback messages\n * - Built on the robust `copyToClipboard` utility with comprehensive browser fallbacks\n *\n * @public\n */\nexport const useClipboard = (options: MaybeRef<ClipboardComposableOptions> = {}) => {\n const t = useI18n()\n const showingSuccessSnackbar = ref(false)\n const getFixedOptions = () => {\n const opts = toUnreactive(options)\n if ('timeout' in opts && 'undefined' !== typeof opts.timeout && opts.timeout !== null) {\n const numericTimeout = Number.parseInt(opts.timeout.toString())\n if (Number.isNaN(numericTimeout) || numericTimeout < 4000 || numericTimeout > 10000) {\n opts.timeout = 5000\n }\n } else {\n opts.timeout = 5000\n }\n return opts\n }\n const renderSuccessSnackbar = () =>\n h(\n VSnackbar,\n {\n modelValue: showingSuccessSnackbar.value,\n color: 'success',\n ...getFixedOptions(),\n ...{\n 'onUpdate:modelValue': (value: boolean) => (showingSuccessSnackbar.value = value),\n },\n },\n () =>\n h('div', { class: ['d-flex', 'align-center', 'justify-start'] }, [\n h(VIcon, { class: ['me-2', 'flex-grow-0'], icon: () => successIcon }),\n h(\n 'span',\n { class: ['flex-grow-1', 'text-center'] },\n t('resourceful.clipboard.copiedToClipboard')\n ),\n ])\n )\n const showingFailureSnackbar = ref(false)\n const renderFailureSnackbar = () =>\n h(\n VSnackbar,\n {\n modelValue: showingFailureSnackbar.value,\n color: 'error',\n ...getFixedOptions(),\n ...{\n 'onUpdate:modelValue': (value: boolean) => (showingFailureSnackbar.value = value),\n },\n },\n () =>\n h('div', { class: ['d-flex', 'align-center', 'justify-start'] }, [\n h(VIcon, { class: ['me-2', 'flex-grow-0'], icon: () => failureIcon }),\n h(\n 'span',\n { class: ['flex-grow-1', 'text-center'] },\n t('resourceful.clipboard.copyFailed')\n ),\n ])\n )\n const renderClipboardFeedback = () =>\n showingSuccessSnackbar.value\n ? renderSuccessSnackbar()\n : showingFailureSnackbar.value\n ? renderFailureSnackbar()\n : null\n const copyWithFeedback = (text: string) => {\n copyToClipboard(\n text,\n () => {\n showingSuccessSnackbar.value = true\n showingFailureSnackbar.value = false\n },\n () => {\n showingFailureSnackbar.value = true\n showingSuccessSnackbar.value = false\n }\n )\n }\n return {\n copy: copyWithFeedback,\n renderClipboardFeedback,\n }\n}\n"],"names":["VuetifyLayoutKey","VuetifyLayoutItemKey","makeLayoutItemProps","propsFactory","useLayout","layout","inject","useLayoutItem","options","id","useId","vm","getCurrentInstance","provide","isKeptAlive","shallowRef","onDeactivated","onActivated","layoutItemStyles","layoutItemScrimStyles","computed","onBeforeUnmount","useCountdown","milliseconds","time","timer","clear","reset","nextTick","start","el","style","interval","startTime","elapsed","onScopeDispose","makeVSnackbarProps","makeLocationProps","makePositionProps","makeRoundedProps","makeVariantProps","makeThemeProps","omit","makeVOverlayProps","VSnackbar","genericComponent","v","props","_ref","slots","isActive","useProxiedModel","positionClasses","usePosition","scopeId","useScopeId","themeClasses","provideTheme","colorClasses","colorStyles","variantClasses","useVariant","roundedClasses","useRounded","countdown","overlay","ref","timerRef","isHovering","startY","mainStyles","hasLayout","useToggleScope","watchEffect","watch","startTimeout","onMounted","activeTimeout","timeout","element","refElement","clearTimeout","onPointerenter","onPointerleave","onTouchstart","event","onTouchend","onAfterLeave","locationClasses","acc","loc","useRender","overlayProps","VOverlay","hasContent","_createVNode","_mergeProps","$event","mergeProps","genOverlays","_createElementVNode","VProgressLinear","VDefaultsProvider","forwardRefs","copyToClipboard","text","onSuccess","onFailure","IN_BROWSER","err","textArea","successful","successIcon","h","SvgIcon","mdiCheckboxMarkedCircleOutline","failureIcon","mdiAlert","useClipboard","t","useI18n","showingSuccessSnackbar","getFixedOptions","opts","toUnreactive","numericTimeout","renderSuccessSnackbar","value","VIcon","showingFailureSnackbar","renderFailureSnackbar"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as v } from "./console-
|
|
2
|
-
import { H as I, I as C, J as N, K as R } from "./utils-
|
|
1
|
+
import { c as v } from "./console-Dgoi3FwV.mjs";
|
|
2
|
+
import { H as I, I as C, J as N, K as R } from "./utils-D3ZGaTyv.mjs";
|
|
3
3
|
const u = 2.4, T = 0.2126729, $ = 0.7151522, M = 0.072175, P = 0.55, Z = 0.58, y = 0.57, E = 0.62, h = 0.03, B = 1.45, L = 5e-4, V = 1.25, J = 1.25, F = 0.078, G = 12.82051282051282, b = 0.06, S = 1e-3;
|
|
4
4
|
function Y(t, n) {
|
|
5
5
|
const s = (t.r / 255) ** u, r = (t.g / 255) ** u, e = (t.b / 255) ** u, a = (n.r / 255) ** u, o = (n.g / 255) ** u, l = (n.b / 255) ** u;
|
|
@@ -157,4 +157,4 @@ export {
|
|
|
157
157
|
at as l,
|
|
158
158
|
g as p
|
|
159
159
|
};
|
|
160
|
-
//# sourceMappingURL=colorUtils-
|
|
160
|
+
//# sourceMappingURL=colorUtils-BdpqbLZS.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorUtils-I1lKouL3.mjs","sources":["../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/color/APCA.mjs","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/color/transformCIELAB.mjs","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/color/transformSRGB.mjs","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/colorUtils.mjs"],"sourcesContent":["const mainTRC = 2.4;\nconst Rco = 0.2126729;\nconst Gco = 0.7151522;\nconst Bco = 0.072175;\nconst normBG = 0.55;\nconst normTXT = 0.58;\nconst revTXT = 0.57;\nconst revBG = 0.62;\nconst blkThrs = 0.03;\nconst blkClmp = 1.45;\nconst deltaYmin = 5e-4;\nconst scaleBoW = 1.25;\nconst scaleWoB = 1.25;\nconst loConThresh = 0.078;\nconst loConFactor = 12.82051282051282;\nconst loConOffset = 0.06;\nconst loClip = 1e-3;\nfunction APCAcontrast(text, background) {\n const Rtxt = (text.r / 255) ** mainTRC;\n const Gtxt = (text.g / 255) ** mainTRC;\n const Btxt = (text.b / 255) ** mainTRC;\n const Rbg = (background.r / 255) ** mainTRC;\n const Gbg = (background.g / 255) ** mainTRC;\n const Bbg = (background.b / 255) ** mainTRC;\n let Ytxt = Rtxt * Rco + Gtxt * Gco + Btxt * Bco;\n let Ybg = Rbg * Rco + Gbg * Gco + Bbg * Bco;\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp;\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp;\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0;\n let outputContrast;\n if (Ybg > Ytxt) {\n const SAPC = (Ybg ** normBG - Ytxt ** normTXT) * scaleBoW;\n outputContrast = SAPC < loClip ? 0 : SAPC < loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC - loConOffset;\n } else {\n const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB;\n outputContrast = SAPC > -loClip ? 0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset;\n }\n return outputContrast * 100;\n}\nexport {\n APCAcontrast\n};\n//# sourceMappingURL=APCA.mjs.map\n","const delta = 0.20689655172413793;\nconst cielabForwardTransform = (t) => t > delta ** 3 ? Math.cbrt(t) : t / (3 * delta ** 2) + 4 / 29;\nconst cielabReverseTransform = (t) => t > delta ? t ** 3 : 3 * delta ** 2 * (t - 4 / 29);\nfunction fromXYZ(xyz) {\n const transform = cielabForwardTransform;\n const transformedY = transform(xyz[1]);\n return [\n 116 * transformedY - 16,\n 500 * (transform(xyz[0] / 0.95047) - transformedY),\n 200 * (transformedY - transform(xyz[2] / 1.08883))\n ];\n}\nfunction toXYZ(lab) {\n const transform = cielabReverseTransform;\n const Ln = (lab[0] + 16) / 116;\n return [\n transform(Ln + lab[1] / 500) * 0.95047,\n transform(Ln),\n transform(Ln - lab[2] / 200) * 1.08883\n ];\n}\nexport {\n fromXYZ,\n toXYZ\n};\n//# sourceMappingURL=transformCIELAB.mjs.map\n","import { clamp } from \"../helpers.mjs\";\nconst srgbForwardMatrix = [\n [3.2406, -1.5372, -0.4986],\n [-0.9689, 1.8758, 0.0415],\n [0.0557, -0.204, 1.057]\n];\nconst srgbForwardTransform = (C) => C <= 31308e-7 ? C * 12.92 : 1.055 * C ** (1 / 2.4) - 0.055;\nconst srgbReverseMatrix = [\n [0.4124, 0.3576, 0.1805],\n [0.2126, 0.7152, 0.0722],\n [0.0193, 0.1192, 0.9505]\n];\nconst srgbReverseTransform = (C) => C <= 0.04045 ? C / 12.92 : ((C + 0.055) / 1.055) ** 2.4;\nfunction fromXYZ(xyz) {\n const rgb = Array(3);\n const transform = srgbForwardTransform;\n const matrix = srgbForwardMatrix;\n for (let i = 0; i < 3; ++i) {\n rgb[i] = Math.round(\n clamp(\n transform(\n matrix[i][0] * xyz[0] + matrix[i][1] * xyz[1] + matrix[i][2] * xyz[2]\n )\n ) * 255\n );\n }\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2]\n };\n}\nfunction toXYZ({ r, g, b }) {\n const xyz = [0, 0, 0];\n const transform = srgbReverseTransform;\n const matrix = srgbReverseMatrix;\n r = transform(r / 255);\n g = transform(g / 255);\n b = transform(b / 255);\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b;\n }\n return xyz;\n}\nexport {\n fromXYZ,\n toXYZ\n};\n//# sourceMappingURL=transformSRGB.mjs.map\n","import { APCAcontrast } from \"./color/APCA.mjs\";\nimport { consoleWarn } from \"./console.mjs\";\nimport { chunk, padEnd, has } from \"./helpers.mjs\";\nimport { fromXYZ, toXYZ as toXYZ$1 } from \"./color/transformCIELAB.mjs\";\nimport { toXYZ, fromXYZ as fromXYZ$1 } from \"./color/transformSRGB.mjs\";\nfunction isCssColor(color) {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color);\n}\nfunction isParsableColor(color) {\n return isCssColor(color) && !/^((rgb|hsl)a?\\()?var\\(--/.test(color);\n}\nconst cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\\((?<values>.+)\\)/;\nconst mappers = {\n rgb: (r, g, b, a) => ({ r, g, b, a }),\n rgba: (r, g, b, a) => ({ r, g, b, a }),\n hsl: (h, s, l, a) => HSLtoRGB({ h, s, l, a }),\n hsla: (h, s, l, a) => HSLtoRGB({ h, s, l, a }),\n hsv: (h, s, v, a) => HSVtoRGB({ h, s, v, a }),\n hsva: (h, s, v, a) => HSVtoRGB({ h, s, v, a })\n};\nfunction parseColor(color) {\n if (typeof color === \"number\") {\n if (isNaN(color) || color < 0 || color > 16777215) {\n consoleWarn(`'${color}' is not a valid hex color`);\n }\n return {\n r: (color & 16711680) >> 16,\n g: (color & 65280) >> 8,\n b: color & 255\n };\n } else if (typeof color === \"string\" && cssColorRe.test(color)) {\n const { groups } = color.match(cssColorRe);\n const { fn, values } = groups;\n const realValues = values.split(/,\\s*|\\s*\\/\\s*|\\s+/).map((v, i) => {\n if (v.endsWith(\"%\") || // unitless slv are %\n i > 0 && i < 3 && [\"hsl\", \"hsla\", \"hsv\", \"hsva\"].includes(fn)) {\n return parseFloat(v) / 100;\n } else {\n return parseFloat(v);\n }\n });\n return mappers[fn](...realValues);\n } else if (typeof color === \"string\") {\n let hex = color.startsWith(\"#\") ? color.slice(1) : color;\n if ([3, 4].includes(hex.length)) {\n hex = hex.split(\"\").map((char) => char + char).join(\"\");\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n const int = parseInt(hex, 16);\n if (isNaN(int) || int < 0 || int > 4294967295) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n return HexToRGB(hex);\n } else if (typeof color === \"object\") {\n if (has(color, [\"r\", \"g\", \"b\"])) {\n return color;\n } else if (has(color, [\"h\", \"s\", \"l\"])) {\n return HSVtoRGB(HSLtoHSV(color));\n } else if (has(color, [\"h\", \"s\", \"v\"])) {\n return HSVtoRGB(color);\n }\n }\n throw new TypeError(\n `Invalid color: ${color == null ? color : String(color) || color.constructor.name}\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`\n );\n}\nfunction RGBToInt(color) {\n return (color.r << 16) + (color.g << 8) + color.b;\n}\nfunction classToHex(color, colors, currentTheme) {\n const [colorName, colorModifier] = color.toString().trim().replace(\"-\", \"\").split(\" \", 2);\n let hexColor = \"\";\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier];\n } else if (\"base\" in colors[colorName]) {\n hexColor = colors[colorName].base;\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName];\n }\n return hexColor;\n}\nfunction HSVtoRGB(hsva) {\n const { h, s, v, a } = hsva;\n const f = (n) => {\n const k = (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n const rgb = [f(5), f(3), f(1)].map((v2) => Math.round(v2 * 255));\n return { r: rgb[0], g: rgb[1], b: rgb[2], a };\n}\nfunction HSLtoRGB(hsla) {\n return HSVtoRGB(HSLtoHSV(hsla));\n}\nfunction RGBtoHSV(rgba) {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 };\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + (g - b) / (max - min));\n } else if (max === g) {\n h = 60 * (2 + (b - r) / (max - min));\n } else if (max === b) {\n h = 60 * (4 + (r - g) / (max - min));\n }\n }\n if (h < 0) h = h + 360;\n const s = max === 0 ? 0 : (max - min) / max;\n const hsv = [h, s, max];\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a };\n}\nfunction HSVtoHSL(hsva) {\n const { h, s, v, a } = hsva;\n const l = v - v * s / 2;\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l);\n return { h, s: sprime, l, a };\n}\nfunction HSLtoHSV(hsl) {\n const { h, s, l, a } = hsl;\n const v = l + s * Math.min(l, 1 - l);\n const sprime = v === 0 ? 0 : 2 - 2 * l / v;\n return { h, s: sprime, v, a };\n}\nfunction RGBtoCSS({ r, g, b, a }) {\n return a === void 0 ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;\n}\nfunction HSVtoCSS(hsva) {\n return RGBtoCSS(HSVtoRGB(hsva));\n}\nfunction toHex(v) {\n const h = Math.round(v).toString(16);\n return (\"00\".substr(0, 2 - h.length) + h).toUpperCase();\n}\nfunction RGBtoHex({ r, g, b, a }) {\n return `#${[\n toHex(r),\n toHex(g),\n toHex(b),\n a !== void 0 ? toHex(Math.round(a * 255)) : \"\"\n ].join(\"\")}`;\n}\nfunction HexToRGB(hex) {\n hex = parseHex(hex);\n let [r, g, b, a] = chunk(hex, 2).map((c) => parseInt(c, 16));\n a = a === void 0 ? a : a / 255;\n return { r, g, b, a };\n}\nfunction HexToHSV(hex) {\n const rgb = HexToRGB(hex);\n return RGBtoHSV(rgb);\n}\nfunction HSVtoHex(hsva) {\n return RGBtoHex(HSVtoRGB(hsva));\n}\nfunction parseHex(hex) {\n if (hex.startsWith(\"#\")) {\n hex = hex.slice(1);\n }\n hex = hex.replace(/([^0-9a-f])/gi, \"F\");\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split(\"\").map((x) => x + x).join(\"\");\n }\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, \"F\");\n }\n return hex;\n}\nfunction parseGradient(gradient, colors, currentTheme) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, (x) => {\n return classToHex(x, colors, currentTheme) || x;\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, (x) => {\n return \"rgba(\" + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, \"\")))).slice(0, 3).join(\",\");\n });\n}\nfunction lighten(value, amount) {\n const lab = fromXYZ(toXYZ(value));\n lab[0] = lab[0] + amount * 10;\n return fromXYZ$1(toXYZ$1(lab));\n}\nfunction darken(value, amount) {\n const lab = fromXYZ(toXYZ(value));\n lab[0] = lab[0] - amount * 10;\n return fromXYZ$1(toXYZ$1(lab));\n}\nfunction getLuma(color) {\n const rgb = parseColor(color);\n return toXYZ(rgb)[1];\n}\nfunction getContrast(first, second) {\n const l1 = getLuma(first);\n const l2 = getLuma(second);\n const light = Math.max(l1, l2);\n const dark = Math.min(l1, l2);\n return (light + 0.05) / (dark + 0.05);\n}\nfunction getForeground(color) {\n const blackContrast = Math.abs(\n APCAcontrast(parseColor(0), parseColor(color))\n );\n const whiteContrast = Math.abs(\n APCAcontrast(parseColor(16777215), parseColor(color))\n );\n return whiteContrast > Math.min(blackContrast, 50) ? \"#fff\" : \"#000\";\n}\nexport {\n HSLtoHSV,\n HSLtoRGB,\n HSVtoCSS,\n HSVtoHSL,\n HSVtoHex,\n HSVtoRGB,\n HexToHSV,\n HexToRGB,\n RGBToInt,\n RGBtoCSS,\n RGBtoHSV,\n RGBtoHex,\n classToHex,\n darken,\n getContrast,\n getForeground,\n getLuma,\n isCssColor,\n isParsableColor,\n lighten,\n parseColor,\n parseGradient,\n parseHex\n};\n//# sourceMappingURL=colorUtils.mjs.map\n"],"names":["mainTRC","Rco","Gco","Bco","normBG","normTXT","revTXT","revBG","blkThrs","blkClmp","deltaYmin","scaleBoW","scaleWoB","loConThresh","loConFactor","loConOffset","loClip","APCAcontrast","text","background","Rtxt","Gtxt","Btxt","Rbg","Gbg","Bbg","Ytxt","Ybg","outputContrast","SAPC","delta","cielabForwardTransform","cielabReverseTransform","fromXYZ","xyz","transform","transformedY","toXYZ","lab","Ln","srgbForwardMatrix","srgbForwardTransform","C","srgbReverseMatrix","srgbReverseTransform","rgb","matrix","i","clamp","r","g","b","isCssColor","color","isParsableColor","cssColorRe","mappers","a","h","s","l","HSLtoRGB","v","HSVtoRGB","parseColor","consoleWarn","groups","fn","values","realValues","hex","char","int","HexToRGB","has","HSLtoHSV","hsva","f","n","k","v2","hsla","hsl","sprime","RGBtoCSS","parseHex","chunk","c","x","padEnd","lighten","value","amount","fromXYZ$1","toXYZ$1","darken","getForeground","blackContrast"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
|
1
|
+
{"version":3,"file":"colorUtils-BdpqbLZS.mjs","sources":["../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/color/APCA.mjs","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/color/transformCIELAB.mjs","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/color/transformSRGB.mjs","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/colorUtils.mjs"],"sourcesContent":["const mainTRC = 2.4;\nconst Rco = 0.2126729;\nconst Gco = 0.7151522;\nconst Bco = 0.072175;\nconst normBG = 0.55;\nconst normTXT = 0.58;\nconst revTXT = 0.57;\nconst revBG = 0.62;\nconst blkThrs = 0.03;\nconst blkClmp = 1.45;\nconst deltaYmin = 5e-4;\nconst scaleBoW = 1.25;\nconst scaleWoB = 1.25;\nconst loConThresh = 0.078;\nconst loConFactor = 12.82051282051282;\nconst loConOffset = 0.06;\nconst loClip = 1e-3;\nfunction APCAcontrast(text, background) {\n const Rtxt = (text.r / 255) ** mainTRC;\n const Gtxt = (text.g / 255) ** mainTRC;\n const Btxt = (text.b / 255) ** mainTRC;\n const Rbg = (background.r / 255) ** mainTRC;\n const Gbg = (background.g / 255) ** mainTRC;\n const Bbg = (background.b / 255) ** mainTRC;\n let Ytxt = Rtxt * Rco + Gtxt * Gco + Btxt * Bco;\n let Ybg = Rbg * Rco + Gbg * Gco + Bbg * Bco;\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp;\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp;\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0;\n let outputContrast;\n if (Ybg > Ytxt) {\n const SAPC = (Ybg ** normBG - Ytxt ** normTXT) * scaleBoW;\n outputContrast = SAPC < loClip ? 0 : SAPC < loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC - loConOffset;\n } else {\n const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB;\n outputContrast = SAPC > -loClip ? 0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset;\n }\n return outputContrast * 100;\n}\nexport {\n APCAcontrast\n};\n//# sourceMappingURL=APCA.mjs.map\n","const delta = 0.20689655172413793;\nconst cielabForwardTransform = (t) => t > delta ** 3 ? Math.cbrt(t) : t / (3 * delta ** 2) + 4 / 29;\nconst cielabReverseTransform = (t) => t > delta ? t ** 3 : 3 * delta ** 2 * (t - 4 / 29);\nfunction fromXYZ(xyz) {\n const transform = cielabForwardTransform;\n const transformedY = transform(xyz[1]);\n return [\n 116 * transformedY - 16,\n 500 * (transform(xyz[0] / 0.95047) - transformedY),\n 200 * (transformedY - transform(xyz[2] / 1.08883))\n ];\n}\nfunction toXYZ(lab) {\n const transform = cielabReverseTransform;\n const Ln = (lab[0] + 16) / 116;\n return [\n transform(Ln + lab[1] / 500) * 0.95047,\n transform(Ln),\n transform(Ln - lab[2] / 200) * 1.08883\n ];\n}\nexport {\n fromXYZ,\n toXYZ\n};\n//# sourceMappingURL=transformCIELAB.mjs.map\n","import { clamp } from \"../helpers.mjs\";\nconst srgbForwardMatrix = [\n [3.2406, -1.5372, -0.4986],\n [-0.9689, 1.8758, 0.0415],\n [0.0557, -0.204, 1.057]\n];\nconst srgbForwardTransform = (C) => C <= 31308e-7 ? C * 12.92 : 1.055 * C ** (1 / 2.4) - 0.055;\nconst srgbReverseMatrix = [\n [0.4124, 0.3576, 0.1805],\n [0.2126, 0.7152, 0.0722],\n [0.0193, 0.1192, 0.9505]\n];\nconst srgbReverseTransform = (C) => C <= 0.04045 ? C / 12.92 : ((C + 0.055) / 1.055) ** 2.4;\nfunction fromXYZ(xyz) {\n const rgb = Array(3);\n const transform = srgbForwardTransform;\n const matrix = srgbForwardMatrix;\n for (let i = 0; i < 3; ++i) {\n rgb[i] = Math.round(\n clamp(\n transform(\n matrix[i][0] * xyz[0] + matrix[i][1] * xyz[1] + matrix[i][2] * xyz[2]\n )\n ) * 255\n );\n }\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2]\n };\n}\nfunction toXYZ({ r, g, b }) {\n const xyz = [0, 0, 0];\n const transform = srgbReverseTransform;\n const matrix = srgbReverseMatrix;\n r = transform(r / 255);\n g = transform(g / 255);\n b = transform(b / 255);\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b;\n }\n return xyz;\n}\nexport {\n fromXYZ,\n toXYZ\n};\n//# sourceMappingURL=transformSRGB.mjs.map\n","import { APCAcontrast } from \"./color/APCA.mjs\";\nimport { consoleWarn } from \"./console.mjs\";\nimport { chunk, padEnd, has } from \"./helpers.mjs\";\nimport { fromXYZ, toXYZ as toXYZ$1 } from \"./color/transformCIELAB.mjs\";\nimport { toXYZ, fromXYZ as fromXYZ$1 } from \"./color/transformSRGB.mjs\";\nfunction isCssColor(color) {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color);\n}\nfunction isParsableColor(color) {\n return isCssColor(color) && !/^((rgb|hsl)a?\\()?var\\(--/.test(color);\n}\nconst cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\\((?<values>.+)\\)/;\nconst mappers = {\n rgb: (r, g, b, a) => ({ r, g, b, a }),\n rgba: (r, g, b, a) => ({ r, g, b, a }),\n hsl: (h, s, l, a) => HSLtoRGB({ h, s, l, a }),\n hsla: (h, s, l, a) => HSLtoRGB({ h, s, l, a }),\n hsv: (h, s, v, a) => HSVtoRGB({ h, s, v, a }),\n hsva: (h, s, v, a) => HSVtoRGB({ h, s, v, a })\n};\nfunction parseColor(color) {\n if (typeof color === \"number\") {\n if (isNaN(color) || color < 0 || color > 16777215) {\n consoleWarn(`'${color}' is not a valid hex color`);\n }\n return {\n r: (color & 16711680) >> 16,\n g: (color & 65280) >> 8,\n b: color & 255\n };\n } else if (typeof color === \"string\" && cssColorRe.test(color)) {\n const { groups } = color.match(cssColorRe);\n const { fn, values } = groups;\n const realValues = values.split(/,\\s*|\\s*\\/\\s*|\\s+/).map((v, i) => {\n if (v.endsWith(\"%\") || // unitless slv are %\n i > 0 && i < 3 && [\"hsl\", \"hsla\", \"hsv\", \"hsva\"].includes(fn)) {\n return parseFloat(v) / 100;\n } else {\n return parseFloat(v);\n }\n });\n return mappers[fn](...realValues);\n } else if (typeof color === \"string\") {\n let hex = color.startsWith(\"#\") ? color.slice(1) : color;\n if ([3, 4].includes(hex.length)) {\n hex = hex.split(\"\").map((char) => char + char).join(\"\");\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n const int = parseInt(hex, 16);\n if (isNaN(int) || int < 0 || int > 4294967295) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n return HexToRGB(hex);\n } else if (typeof color === \"object\") {\n if (has(color, [\"r\", \"g\", \"b\"])) {\n return color;\n } else if (has(color, [\"h\", \"s\", \"l\"])) {\n return HSVtoRGB(HSLtoHSV(color));\n } else if (has(color, [\"h\", \"s\", \"v\"])) {\n return HSVtoRGB(color);\n }\n }\n throw new TypeError(\n `Invalid color: ${color == null ? color : String(color) || color.constructor.name}\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`\n );\n}\nfunction RGBToInt(color) {\n return (color.r << 16) + (color.g << 8) + color.b;\n}\nfunction classToHex(color, colors, currentTheme) {\n const [colorName, colorModifier] = color.toString().trim().replace(\"-\", \"\").split(\" \", 2);\n let hexColor = \"\";\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier];\n } else if (\"base\" in colors[colorName]) {\n hexColor = colors[colorName].base;\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName];\n }\n return hexColor;\n}\nfunction HSVtoRGB(hsva) {\n const { h, s, v, a } = hsva;\n const f = (n) => {\n const k = (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n const rgb = [f(5), f(3), f(1)].map((v2) => Math.round(v2 * 255));\n return { r: rgb[0], g: rgb[1], b: rgb[2], a };\n}\nfunction HSLtoRGB(hsla) {\n return HSVtoRGB(HSLtoHSV(hsla));\n}\nfunction RGBtoHSV(rgba) {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 };\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + (g - b) / (max - min));\n } else if (max === g) {\n h = 60 * (2 + (b - r) / (max - min));\n } else if (max === b) {\n h = 60 * (4 + (r - g) / (max - min));\n }\n }\n if (h < 0) h = h + 360;\n const s = max === 0 ? 0 : (max - min) / max;\n const hsv = [h, s, max];\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a };\n}\nfunction HSVtoHSL(hsva) {\n const { h, s, v, a } = hsva;\n const l = v - v * s / 2;\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l);\n return { h, s: sprime, l, a };\n}\nfunction HSLtoHSV(hsl) {\n const { h, s, l, a } = hsl;\n const v = l + s * Math.min(l, 1 - l);\n const sprime = v === 0 ? 0 : 2 - 2 * l / v;\n return { h, s: sprime, v, a };\n}\nfunction RGBtoCSS({ r, g, b, a }) {\n return a === void 0 ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;\n}\nfunction HSVtoCSS(hsva) {\n return RGBtoCSS(HSVtoRGB(hsva));\n}\nfunction toHex(v) {\n const h = Math.round(v).toString(16);\n return (\"00\".substr(0, 2 - h.length) + h).toUpperCase();\n}\nfunction RGBtoHex({ r, g, b, a }) {\n return `#${[\n toHex(r),\n toHex(g),\n toHex(b),\n a !== void 0 ? toHex(Math.round(a * 255)) : \"\"\n ].join(\"\")}`;\n}\nfunction HexToRGB(hex) {\n hex = parseHex(hex);\n let [r, g, b, a] = chunk(hex, 2).map((c) => parseInt(c, 16));\n a = a === void 0 ? a : a / 255;\n return { r, g, b, a };\n}\nfunction HexToHSV(hex) {\n const rgb = HexToRGB(hex);\n return RGBtoHSV(rgb);\n}\nfunction HSVtoHex(hsva) {\n return RGBtoHex(HSVtoRGB(hsva));\n}\nfunction parseHex(hex) {\n if (hex.startsWith(\"#\")) {\n hex = hex.slice(1);\n }\n hex = hex.replace(/([^0-9a-f])/gi, \"F\");\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split(\"\").map((x) => x + x).join(\"\");\n }\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, \"F\");\n }\n return hex;\n}\nfunction parseGradient(gradient, colors, currentTheme) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, (x) => {\n return classToHex(x, colors, currentTheme) || x;\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, (x) => {\n return \"rgba(\" + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, \"\")))).slice(0, 3).join(\",\");\n });\n}\nfunction lighten(value, amount) {\n const lab = fromXYZ(toXYZ(value));\n lab[0] = lab[0] + amount * 10;\n return fromXYZ$1(toXYZ$1(lab));\n}\nfunction darken(value, amount) {\n const lab = fromXYZ(toXYZ(value));\n lab[0] = lab[0] - amount * 10;\n return fromXYZ$1(toXYZ$1(lab));\n}\nfunction getLuma(color) {\n const rgb = parseColor(color);\n return toXYZ(rgb)[1];\n}\nfunction getContrast(first, second) {\n const l1 = getLuma(first);\n const l2 = getLuma(second);\n const light = Math.max(l1, l2);\n const dark = Math.min(l1, l2);\n return (light + 0.05) / (dark + 0.05);\n}\nfunction getForeground(color) {\n const blackContrast = Math.abs(\n APCAcontrast(parseColor(0), parseColor(color))\n );\n const whiteContrast = Math.abs(\n APCAcontrast(parseColor(16777215), parseColor(color))\n );\n return whiteContrast > Math.min(blackContrast, 50) ? \"#fff\" : \"#000\";\n}\nexport {\n HSLtoHSV,\n HSLtoRGB,\n HSVtoCSS,\n HSVtoHSL,\n HSVtoHex,\n HSVtoRGB,\n HexToHSV,\n HexToRGB,\n RGBToInt,\n RGBtoCSS,\n RGBtoHSV,\n RGBtoHex,\n classToHex,\n darken,\n getContrast,\n getForeground,\n getLuma,\n isCssColor,\n isParsableColor,\n lighten,\n parseColor,\n parseGradient,\n parseHex\n};\n//# sourceMappingURL=colorUtils.mjs.map\n"],"names":["mainTRC","Rco","Gco","Bco","normBG","normTXT","revTXT","revBG","blkThrs","blkClmp","deltaYmin","scaleBoW","scaleWoB","loConThresh","loConFactor","loConOffset","loClip","APCAcontrast","text","background","Rtxt","Gtxt","Btxt","Rbg","Gbg","Bbg","Ytxt","Ybg","outputContrast","SAPC","delta","cielabForwardTransform","cielabReverseTransform","fromXYZ","xyz","transform","transformedY","toXYZ","lab","Ln","srgbForwardMatrix","srgbForwardTransform","C","srgbReverseMatrix","srgbReverseTransform","rgb","matrix","i","clamp","r","g","b","isCssColor","color","isParsableColor","cssColorRe","mappers","a","h","s","l","HSLtoRGB","v","HSVtoRGB","parseColor","consoleWarn","groups","fn","values","realValues","hex","char","int","HexToRGB","has","HSLtoHSV","hsva","f","n","k","v2","hsla","hsl","sprime","RGBtoCSS","parseHex","chunk","c","x","padEnd","lighten","value","amount","fromXYZ$1","toXYZ$1","darken","getForeground","blackContrast"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { aD as ji, K as Wi, r as Bn, L as Gi, t as qi, z as Xi, aE as Yi, V as Ca, aF as Qi,
|
|
1
|
+
import { aD as ji, K as Wi, r as Bn, L as Gi, t as qi, z as Xi, aE as Yi, V as Ca, aF as Qi, C as Zi, d as ka, i as Ji, e as eu, ai as tu, Y as lu, aG as nu, aH as au } from "./mdi-DC1jeTJJ.mjs";
|
|
2
2
|
import { useDisplay as ou, useTheme as iu } from "vuetify";
|
|
3
|
-
import { S as lt } from "./index-
|
|
3
|
+
import { S as lt } from "./index-C-PCfO1S.mjs";
|
|
4
4
|
import { d as ft } from "./index-DXdh_Con.mjs";
|
|
5
|
-
import { p as re, E as b,
|
|
5
|
+
import { p as re, E as b, aC as uu, am as Fn, aM as Ya, V as ct, W as de, Y as $t, ad as Xe, a5 as De, M as ve, Q as O, a0 as Vl, aB as En, a8 as nl, B as Bt, C as Y, aD as je, O as be, S as bt, U as al, F as Te, T as hn, L as ce, ab as ut, ac as Ft, a3 as et, y as Ml, P as Ue, aN as pl, x as wt, aO as Qa, A as Za, Z as Lt, a7 as Rl, w as nt, _ as bn, H as At, aP as ru, aQ as Sn, z as Oe, aj as Ja, N as Pt, aL as Qe, aR as Cn, aS as Cl, a2 as su, aT as cu, a4 as eo, aU as du, aK as to, aV as lo, ai as Va, a6 as no, D as vu, aW as fu, aX as mu, aY as yu, aZ as gu, a_ as hu, r as ao, a$ as bu, b0 as oo, aE as io, b1 as wl, b2 as Su, b3 as Cu, b4 as ku, d as uo, t as me, n as kn, s as ro, l as Zt, u as Vu, a as pa, g as pu } from "./utils-D3ZGaTyv.mjs";
|
|
6
6
|
import { I as qe, h as wa, i as pt } from "./encoding-C1W2Cp3X-DzgQRCVx.mjs";
|
|
7
7
|
import { a as so } from "./ioc-Du_Tgg-1.mjs";
|
|
8
8
|
import { createElementVNode as H, normalizeStyle as Ee, normalizeClass as pe, shallowRef as Ve, onMounted as Tn, toRef as ne, readonly as wu, computed as R, createVNode as N, withDirectives as ol, vShow as Ln, mergeProps as Se, watchEffect as xl, ref as xe, useId as Et, provide as xu, onScopeDispose as On, Fragment as We, inject as Mn, nextTick as rt, unref as Ot, onBeforeMount as _u, onBeforeUnmount as Iu, watch as Fe, cloneVNode as Au, toValue as xa, createTextVNode as co, defineComponent as Rn, toRefs as Dn, h as Z, triggerRef as Pu } from "vue";
|
|
9
|
-
import { m as Ie } from "./component-
|
|
10
|
-
import { i as dt, h as il, m as vt, a as vo, j as ul, k as Dl, p as St, l as Nl, E as Nn, n as rl, r as fo, F as zn, e as $u, f as Ke, g as Je, J as Me, w as mo, b as sl, R as Hn, D as yo, c as cl, s as Ut, u as zl, I as Hl, T as go, P as Jt, Q as dl, M as Ul, S as Nt, G as Kt, o as ho, N as Bu, d as Un, q as bo, v as _l, z as Fu, C as Eu, U as vl, W as _a, X as on, Y as un, Z as Ia, _ as Aa, $ as Tu, a0 as Lu, y as Ou, A as Mu, L as Ru, K as Du, V as Vn, a1 as Nu } from "./display-
|
|
11
|
-
import { V as Kn, g as ye, a as jt, I as _e, u as Wt, m as jn, b as Wn, p as Gn, h as zu } from "./elevation-
|
|
12
|
-
import { u as Ce } from "./useRender-
|
|
13
|
-
import { a as So, d as Hu, c as Uu } from "./console-
|
|
9
|
+
import { m as Ie } from "./component-DhEJuSE6.mjs";
|
|
10
|
+
import { i as dt, h as il, m as vt, a as vo, j as ul, k as Dl, p as St, l as Nl, E as Nn, n as rl, r as fo, F as zn, e as $u, f as Ke, g as Je, J as Me, w as mo, b as sl, R as Hn, D as yo, c as cl, s as Ut, u as zl, I as Hl, T as go, P as Jt, Q as dl, M as Ul, S as Nt, G as Kt, o as ho, N as Bu, d as Un, q as bo, v as _l, z as Fu, C as Eu, U as vl, W as _a, X as on, Y as un, Z as Ia, _ as Aa, $ as Tu, a0 as Lu, y as Ou, A as Mu, L as Ru, K as Du, V as Vn, a1 as Nu } from "./display-dv4cOwRN.mjs";
|
|
11
|
+
import { V as Kn, g as ye, a as jt, I as _e, u as Wt, m as jn, b as Wn, p as Gn, h as zu } from "./elevation-YNOj0hSa.mjs";
|
|
12
|
+
import { u as Ce } from "./useRender-CfNJA_8a.mjs";
|
|
13
|
+
import { a as So, d as Hu, c as Uu } from "./console-Dgoi3FwV.mjs";
|
|
14
14
|
import { f as Gt } from "./forwardRefs-Cf4c0t-9.mjs";
|
|
15
|
-
import { u as Ku, b as ju, c as Wu, d as Co, V as mt, e as Gu, m as qu, f as Xu, a as Yu } from "./VListItem-
|
|
16
|
-
import { S as Qu } from "./index-
|
|
17
|
-
import { g as Ae, p as ge, o as Be, q as xt, y as Re, a9 as yt, E as ht, aI as Zu, aw as qn, bl as ko, r as qt,
|
|
18
|
-
import { V as la } from "./VMenu-
|
|
15
|
+
import { u as Ku, b as ju, c as Wu, d as Co, V as mt, e as Gu, m as qu, f as Xu, a as Yu } from "./VListItem-BT-NXJyi.mjs";
|
|
16
|
+
import { S as Qu } from "./index-VpcXNOpn.mjs";
|
|
17
|
+
import { g as Ae, p as ge, o as Be, q as xt, y as Re, a9 as yt, E as ht, aI as Zu, aw as qn, bl as ko, r as qt, M as ze, ar as Tt, f as Xt, av as ot, bh as pn, ax as Xn, ak as Rt, bk as Ze, F as Yt, h as Kl, i as Vo, a4 as jl, j as Wl, k as Yn, n as Gl, al as ql, X as Qn, s as Xl, w as Zn, x as Yl, a8 as Ql, z as po, G as Ju, u as Ge, a2 as Pa, L as wo, a as it, a0 as st, ba as el, N as fl, bd as xo, aH as Jn, K as _o, bm as Io, R as Ao, T as wn, A as ea, Y as er, ab as tr, at as lr, $ as nr, ao as ar, a$ as or, I as $a, ag as Po, ae as ir, aD as ur, O as rn, D as ta, bn as rr, a6 as $o, aA as Bo, aC as Il, c as sr, az as cr, S as dr, l as vr, m as fr, W as mr, V as Vt, t as yr, v as gr } from "./display-fXo4JeIS.mjs";
|
|
18
|
+
import { V as la } from "./VMenu-Bk2NN8qb.mjs";
|
|
19
19
|
const hr = ge({
|
|
20
20
|
text: String,
|
|
21
21
|
onClick: yt(),
|
|
@@ -10254,4 +10254,4 @@ export {
|
|
|
10254
10254
|
Br as y,
|
|
10255
10255
|
Qd as z
|
|
10256
10256
|
};
|
|
10257
|
-
//# sourceMappingURL=common-
|
|
10257
|
+
//# sourceMappingURL=common-Bi5RUD-n.mjs.map
|