@indielayer/ui 1.16.0 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/docs/assets/css/tailwind.css +6 -0
- package/docs/components/common/CodePreview.vue +14 -9
- package/docs/components/common/DocsFeatures.vue +41 -0
- package/docs/components/common/DocsHero.vue +216 -0
- package/docs/components/common/DocumentPage.vue +99 -112
- package/docs/components/common/ExampleBlocks.vue +157 -0
- package/docs/components/menu/DocsMenu.vue +3 -0
- package/docs/components/toolbar/Toolbar.vue +11 -2
- package/docs/components/toolbar/ToolbarColorToggle.vue +4 -4
- package/docs/components/toolbar/ToolbarSearch.vue +59 -62
- package/docs/composables/useDocMeta.ts +47 -0
- package/docs/icons.ts +28 -0
- package/docs/layouts/default.vue +1 -3
- package/docs/layouts/simple.vue +3 -1
- package/docs/main.ts +5 -0
- package/docs/pages/colors.vue +56 -47
- package/docs/pages/component/infiniteLoader/composable.vue +168 -0
- package/docs/pages/component/infiniteLoader/index.vue +36 -0
- package/docs/pages/component/infiniteLoader/usage.vue +161 -0
- package/docs/pages/component/select/size.vue +1 -1
- package/docs/pages/component/select/usage.vue +14 -7
- package/docs/pages/component/virtualGrid/index.vue +29 -0
- package/docs/pages/component/virtualGrid/usage.vue +20 -0
- package/docs/pages/component/virtualList/dynamicHeight.vue +75 -0
- package/docs/pages/component/virtualList/index.vue +36 -0
- package/docs/pages/component/virtualList/usage.vue +17 -0
- package/docs/pages/error.vue +5 -3
- package/docs/pages/icons.vue +64 -54
- package/docs/pages/index.vue +93 -82
- package/docs/pages/typography.vue +38 -28
- package/docs/router/index.ts +31 -3
- package/docs/search/components.json +1 -1
- package/docs/search/index.json +1 -0
- package/lib/components/container/theme/Container.base.theme.js +1 -1
- package/lib/components/divider/theme/Divider.base.theme.js +1 -1
- package/lib/components/input/Input.vue.js +23 -24
- package/lib/components/select/Select.vue.d.ts +16 -27
- package/lib/components/select/Select.vue.js +452 -345
- package/lib/components/table/Table.vue.js +1 -1
- package/lib/composables/useVirtualList.d.ts +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +88 -76
- package/lib/index.umd.js +4 -4
- package/lib/install.js +15 -7
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/virtual/components/infiniteLoader/InfiniteLoader.test.d.ts +1 -0
- package/lib/virtual/components/infiniteLoader/InfiniteLoader.vue.d.ts +49 -0
- package/lib/virtual/components/infiniteLoader/InfiniteLoader.vue.js +21 -0
- package/lib/virtual/components/infiniteLoader/InfiniteLoader.vue2.js +4 -0
- package/lib/virtual/components/virtualGrid/VirtualGrid.vue.d.ts +185 -0
- package/lib/virtual/components/virtualGrid/VirtualGrid.vue.js +241 -0
- package/lib/virtual/components/virtualGrid/VirtualGrid.vue2.js +4 -0
- package/lib/virtual/components/virtualGrid/types.d.ts +138 -0
- package/lib/virtual/components/virtualList/VirtualList.test.d.ts +1 -0
- package/lib/virtual/components/virtualList/VirtualList.vue.d.ts +135 -0
- package/lib/virtual/components/virtualList/VirtualList.vue.js +159 -0
- package/lib/virtual/components/virtualList/VirtualList.vue2.js +4 -0
- package/lib/virtual/components/virtualList/isDynamicRowHeight.d.ts +2 -0
- package/lib/virtual/components/virtualList/isDynamicRowHeight.js +6 -0
- package/lib/virtual/components/virtualList/types.d.ts +115 -0
- package/lib/virtual/components/virtualList/useDynamicRowHeight.d.ts +7 -0
- package/lib/virtual/components/virtualList/useDynamicRowHeight.js +68 -0
- package/lib/virtual/components/virtualList/useDynamicRowHeight.test.d.ts +1 -0
- package/lib/virtual/composables/infinite-loader/scanForUnloadedIndices.d.ts +8 -0
- package/lib/virtual/composables/infinite-loader/scanForUnloadedIndices.js +41 -0
- package/lib/virtual/composables/infinite-loader/scanForUnloadedIndices.test.d.ts +1 -0
- package/lib/virtual/composables/infinite-loader/types.d.ts +30 -0
- package/lib/virtual/composables/infinite-loader/useInfiniteLoader.d.ts +6 -0
- package/lib/virtual/composables/infinite-loader/useInfiniteLoader.js +42 -0
- package/lib/virtual/composables/infinite-loader/useInfiniteLoader.test.d.ts +1 -0
- package/lib/virtual/core/createCachedBounds.d.ts +6 -0
- package/lib/virtual/core/createCachedBounds.js +55 -0
- package/lib/virtual/core/getEstimatedSize.d.ts +6 -0
- package/lib/virtual/core/getEstimatedSize.js +22 -0
- package/lib/virtual/core/getOffsetForIndex.d.ts +11 -0
- package/lib/virtual/core/getOffsetForIndex.js +40 -0
- package/lib/virtual/core/getStartStopIndices.d.ts +13 -0
- package/lib/virtual/core/getStartStopIndices.js +31 -0
- package/lib/virtual/core/getStartStopIndices.test.d.ts +1 -0
- package/lib/virtual/core/types.d.ts +11 -0
- package/lib/virtual/core/useCachedBounds.d.ts +7 -0
- package/lib/virtual/core/useCachedBounds.js +18 -0
- package/lib/virtual/core/useIsRtl.d.ts +2 -0
- package/lib/virtual/core/useIsRtl.js +15 -0
- package/lib/virtual/core/useItemSize.d.ts +5 -0
- package/lib/virtual/core/useItemSize.js +27 -0
- package/lib/virtual/core/useVirtualizer.d.ts +33 -0
- package/lib/virtual/core/useVirtualizer.js +171 -0
- package/lib/virtual/index.d.ts +9 -0
- package/lib/virtual/test-utils/mockResizeObserver.d.ts +15 -0
- package/lib/virtual/types.d.ts +2 -0
- package/lib/virtual/utils/adjustScrollOffsetForRtl.d.ts +7 -0
- package/lib/virtual/utils/adjustScrollOffsetForRtl.js +24 -0
- package/lib/virtual/utils/areArraysEqual.d.ts +1 -0
- package/lib/virtual/utils/assert.d.ts +1 -0
- package/lib/virtual/utils/assert.js +7 -0
- package/lib/virtual/utils/getRTLOffsetType.d.ts +2 -0
- package/lib/virtual/utils/getRTLOffsetType.js +13 -0
- package/lib/virtual/utils/getScrollbarSize.d.ts +2 -0
- package/lib/virtual/utils/getScrollbarSize.js +11 -0
- package/lib/virtual/utils/isRtl.d.ts +1 -0
- package/lib/virtual/utils/isRtl.js +12 -0
- package/lib/virtual/utils/parseNumericStyleValue.d.ts +2 -0
- package/lib/virtual/utils/parseNumericStyleValue.js +15 -0
- package/lib/virtual/utils/shallowCompare.d.ts +1 -0
- package/lib/virtual/utils/shallowCompare.js +14 -0
- package/package.json +8 -3
- package/src/components/container/theme/Container.base.theme.ts +1 -1
- package/src/components/divider/theme/Divider.base.theme.ts +1 -1
- package/src/components/input/Input.vue +1 -2
- package/src/components/select/Select.vue +97 -20
- package/src/components/table/Table.vue +1 -1
- package/src/composables/useVirtualList.ts +1 -1
- package/src/index.ts +1 -0
- package/src/install.ts +9 -3
- package/src/version.ts +1 -1
- package/src/virtual/README.md +285 -0
- package/src/virtual/components/infiniteLoader/InfiniteLoader.test.ts +96 -0
- package/src/virtual/components/infiniteLoader/InfiniteLoader.vue +18 -0
- package/src/virtual/components/virtualGrid/VirtualGrid.vue +322 -0
- package/src/virtual/components/virtualGrid/types.ts +160 -0
- package/src/virtual/components/virtualList/VirtualList.test.ts +164 -0
- package/src/virtual/components/virtualList/VirtualList.vue +227 -0
- package/src/virtual/components/virtualList/isDynamicRowHeight.ts +13 -0
- package/src/virtual/components/virtualList/types.ts +127 -0
- package/src/virtual/components/virtualList/useDynamicRowHeight.test.ts +197 -0
- package/src/virtual/components/virtualList/useDynamicRowHeight.ts +149 -0
- package/src/virtual/composables/infinite-loader/scanForUnloadedIndices.test.ts +141 -0
- package/src/virtual/composables/infinite-loader/scanForUnloadedIndices.ts +82 -0
- package/src/virtual/composables/infinite-loader/types.ts +36 -0
- package/src/virtual/composables/infinite-loader/useInfiniteLoader.test.ts +236 -0
- package/src/virtual/composables/infinite-loader/useInfiniteLoader.ts +88 -0
- package/src/virtual/core/createCachedBounds.ts +72 -0
- package/src/virtual/core/getEstimatedSize.ts +29 -0
- package/src/virtual/core/getOffsetForIndex.ts +90 -0
- package/src/virtual/core/getStartStopIndices.test.ts +45 -0
- package/src/virtual/core/getStartStopIndices.ts +71 -0
- package/src/virtual/core/types.ts +17 -0
- package/src/virtual/core/useCachedBounds.ts +21 -0
- package/src/virtual/core/useIsRtl.ts +25 -0
- package/src/virtual/core/useItemSize.ts +34 -0
- package/src/virtual/core/useVirtualizer.ts +294 -0
- package/src/virtual/index.ts +25 -0
- package/src/virtual/test-utils/mockResizeObserver.ts +162 -0
- package/src/virtual/types.ts +3 -0
- package/src/virtual/utils/adjustScrollOffsetForRtl.ts +37 -0
- package/src/virtual/utils/areArraysEqual.ts +13 -0
- package/src/virtual/utils/assert.ts +10 -0
- package/src/virtual/utils/getRTLOffsetType.ts +51 -0
- package/src/virtual/utils/getScrollbarSize.ts +24 -0
- package/src/virtual/utils/isRtl.ts +13 -0
- package/src/virtual/utils/parseNumericStyleValue.ts +21 -0
- package/src/virtual/utils/shallowCompare.ts +29 -0
- package/volar.d.ts +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"Accordion","description":"Accordion is a component that allows you to collapse and expand content.","url":"/component/accordion"},{"name":"Alert","description":"Alerts are used to communicate a state that affects a system, feature or page.","url":"/component/alert"},{"name":"Avatar","description":"Avatars are used to represent a user.","url":"/component/avatar"},{"name":"Badge","description":"Badges are used to display a small amount of information.","url":"/component/badge"},{"name":"Breadcrumbs","description":"Breadcrumbs are used to indicate the current page\\","url":"/component/breadcrumbs"},{"name":"Button","description":"Buttons allow users to perform actions and make choices with a single click. They are commonly used for submitting forms, opening dialogs or menus, and executing commands. Buttons can be customized with different styles, sizes, and icons to fit various use cases.","url":"/component/button"},{"name":"Card","description":"Cards are used to display content in an organized manner.","url":"/component/card"},{"name":"Carousel","description":"A carousel is a rotating set of images.","url":"/component/carousel"},{"name":"Checkbox","description":"Checkboxes enable users to select one or multiple options from a list. They are ideal for toggling settings or making selections where more than one choice is allowed. Each checkbox can be checked or unchecked independently.","url":"/component/checkbox"},{"name":"Container","description":"Containers provide a flexible layout element for grouping and organizing content. They help structure pages by controlling width, alignment, and spacing, ensuring consistent presentation across different sections.","url":"/component/container"},{"name":"Datepicker","description":"The datepicker component is used to select a date or time.","url":"/component/datepicker"},{"name":"Divider","description":"Dividers are used to separate content.","url":"/component/divider"},{"name":"Drawer","description":"Drawers slide in from the edge of the screen to present navigation, options, or additional content without disrupting the main view. They are ideal for menus, filters, or contextual panels.","url":"/component/drawer"},{"name":"Form","description":"Forms provide a structured way to collect and validate user input, such as text, selections, and files. They support features like validation, grouping, and submission handling, making it easy to build interactive and accessible data entry interfaces.","url":"/component/form"},{"name":"FormGroup","description":"Form groups organize related form elements together, providing structure and shared validation. They help group checkboxes, radio buttons, or inputs that belong to the same logical section.","url":"/component/formGroup"},{"name":"Icon","description":"Icons visually represent actions, objects, or concepts, enhancing usability and recognition in interfaces. They can be used alone or alongside text for buttons, menus, and indicators.","url":"/component/icon"},{"name":"Image","description":"Image is used to load an image file with a skeleton as placeholder and on load display the image.","url":"/component/image"},{"name":"Input","description":"This is a text input component that allows users to enter and edit text.","url":"/component/input"},{"name":"Link","description":"Links are used to navigate to a different page.","url":"/component/link"},{"name":"Loader","description":"Loader component is used to show a loading state.","url":"/component/loader"},{"name":"Menu","description":"Menus are used to display a list of options.","url":"/component/menu"},{"name":"Modal","description":"Modals are used to display content on top of the current page.","url":"/component/modal"},{"name":"Notifications","description":"Notifications provide timely feedback or alerts to users, such as success messages, warnings, or errors. They help keep users informed about important events or actions.","url":"/component/notifications"},{"name":"Pagination","description":"Pagination divides large sets of content into manageable pages, allowing users to navigate through items efficiently. It is commonly used in tables, lists, and search results to improve usability and performance.","url":"/component/pagination"},{"name":"Popover","description":"Popovers display additional information or interactive content in a floating overlay, anchored to a trigger element. They are useful for tooltips, menus, or contextual actions without navigating away from the current view.","url":"/component/popover"},{"name":"Progress","description":"Progress indicators visually communicate the completion status of a task or process, such as file uploads or data loading. They help users understand how much work remains.","url":"/component/progress"},{"name":"QR Code","description":"The QR Code component is used to generate a QR code.","url":"/component/qrCode"},{"name":"Radio","description":"Radios allow the user to select one option from a set. Use radio buttons for exclusive selection if you think that the user needs to see all available options side-by-side.","url":"/component/radio"},{"name":"Scroll","description":"The Scroll component enhances scrolling experiences by adding visual cues, such as inner shadows, to indicate additional content. It is useful for horizontally or vertically scrolling lists and containers.","url":"/component/scroll"},{"name":"Select","description":"Selects allow the user to select one or more options from a set.","url":"/component/select"},{"name":"Skeleton","description":"Skeletons provide placeholder elements that mimic the layout of content while data is loading. They improve perceived performance by giving users a visual cue that content is being fetched.","url":"/component/skeleton"},{"name":"Slider","description":"Sliders allow users to select a numeric value or range by dragging a handle along a track. They are ideal for adjusting settings such as volume, brightness, or price filters.","url":"/component/slider"},{"name":"Spacer","description":"Spacers create adjustable gaps between elements within flex layouts, helping to control spacing and alignment without using margin or padding directly.","url":"/component/spacer"},{"name":"Spinner","description":"Spinners visually indicate that a background process or operation is ongoing, such as loading data or submitting a form. They help manage user expectations by signaling that the system is working.","url":"/component/spinner"},{"name":"Stepper","description":"Stepper is a navigation component that guides users through the steps of a task.","url":"/component/stepper"},{"name":"Table","description":"Tables are used to display data in a tabular format.","url":"/component/table"},{"name":"Tabs","description":"Tabs are used to navigate through a set of views.","url":"/component/tabs"},{"name":"Tag","description":"Tags are compact elements used to display brief information, such as categories, statuses, or labels. They help organize content and provide quick context or filtering options within lists and interfaces.","url":"/component/tag"},{"name":"Textarea","description":"Textareas provide a multi-line input field for users to enter longer text, such as comments, descriptions, or messages. They support resizing and can be customized for different use cases.","url":"/component/textarea"},{"name":"Toggle","description":"Toggles provide a simple switch interface for enabling or disabling a setting, or switching between two mutually exclusive states. They are ideal for binary options such as on/off, active/inactive, or show/hide.","url":"/component/toggle"},{"name":"Tooltip","description":"Tooltips are used to display a message when hovering over an element.","url":"/component/tooltip"},{"name":"Upload","description":"Upload is a component that allows you to upload files.","url":"/component/upload"}]
|
|
1
|
+
[{"name":"Accordion","description":"Accordion is a component that allows you to collapse and expand content.","url":"/component/accordion","category":"component"},{"name":"Alert","description":"Alerts are used to communicate a state that affects a system, feature or page.","url":"/component/alert","category":"component"},{"name":"Avatar","description":"Avatars are used to represent a user.","url":"/component/avatar","category":"component"},{"name":"Badge","description":"Badges are used to display a small amount of information.","url":"/component/badge","category":"component"},{"name":"Breadcrumbs","description":"Breadcrumbs are used to indicate the current page\\","url":"/component/breadcrumbs","category":"component"},{"name":"Button","description":"Buttons allow users to perform actions and make choices with a single click. They are commonly used for submitting forms, opening dialogs or menus, and executing commands. Buttons can be customized with different styles, sizes, and icons to fit various use cases.","url":"/component/button","category":"component"},{"name":"Card","description":"Cards are used to display content in an organized manner.","url":"/component/card","category":"component"},{"name":"Carousel","description":"A carousel is a rotating set of images.","url":"/component/carousel","category":"component"},{"name":"Checkbox","description":"Checkboxes enable users to select one or multiple options from a list. They are ideal for toggling settings or making selections where more than one choice is allowed. Each checkbox can be checked or unchecked independently.","url":"/component/checkbox","category":"component"},{"name":"Container","description":"Containers provide a flexible layout element for grouping and organizing content. They help structure pages by controlling width, alignment, and spacing, ensuring consistent presentation across different sections.","url":"/component/container","category":"component"},{"name":"Datepicker","description":"The datepicker component is used to select a date or time.","url":"/component/datepicker","category":"component"},{"name":"Divider","description":"Dividers are used to separate content.","url":"/component/divider","category":"component"},{"name":"Drawer","description":"Drawers slide in from the edge of the screen to present navigation, options, or additional content without disrupting the main view. They are ideal for menus, filters, or contextual panels.","url":"/component/drawer","category":"component"},{"name":"Form","description":"Forms provide a structured way to collect and validate user input, such as text, selections, and files. They support features like validation, grouping, and submission handling, making it easy to build interactive and accessible data entry interfaces.","url":"/component/form","category":"component"},{"name":"FormGroup","description":"Form groups organize related form elements together, providing structure and shared validation. They help group checkboxes, radio buttons, or inputs that belong to the same logical section.","url":"/component/formGroup","category":"component"},{"name":"Icon","description":"Icons visually represent actions, objects, or concepts, enhancing usability and recognition in interfaces. They can be used alone or alongside text for buttons, menus, and indicators.","url":"/component/icon","category":"component"},{"name":"Image","description":"Image is used to load an image file with a skeleton as placeholder and on load display the image.","url":"/component/image","category":"component"},{"name":"InfiniteLoader","description":"InfiniteLoader is a component that allows you to load data on demand as users scroll through a list.","url":"/component/infiniteLoader","category":"component"},{"name":"Input","description":"This is a text input component that allows users to enter and edit text.","url":"/component/input","category":"component"},{"name":"Link","description":"Links are used to navigate to a different page.","url":"/component/link","category":"component"},{"name":"Loader","description":"Loader component is used to show a loading state.","url":"/component/loader","category":"component"},{"name":"Menu","description":"Menus are used to display a list of options.","url":"/component/menu","category":"component"},{"name":"Modal","description":"Modals are used to display content on top of the current page.","url":"/component/modal","category":"component"},{"name":"Notifications","description":"Notifications provide timely feedback or alerts to users, such as success messages, warnings, or errors. They help keep users informed about important events or actions.","url":"/component/notifications","category":"component"},{"name":"Pagination","description":"Pagination divides large sets of content into manageable pages, allowing users to navigate through items efficiently. It is commonly used in tables, lists, and search results to improve usability and performance.","url":"/component/pagination","category":"component"},{"name":"Popover","description":"Popovers display additional information or interactive content in a floating overlay, anchored to a trigger element. They are useful for tooltips, menus, or contextual actions without navigating away from the current view.","url":"/component/popover","category":"component"},{"name":"Progress","description":"Progress indicators visually communicate the completion status of a task or process, such as file uploads or data loading. They help users understand how much work remains.","url":"/component/progress","category":"component"},{"name":"QR Code","description":"The QR Code component is used to generate a QR code.","url":"/component/qrCode","category":"component"},{"name":"Radio","description":"Radios allow the user to select one option from a set. Use radio buttons for exclusive selection if you think that the user needs to see all available options side-by-side.","url":"/component/radio","category":"component"},{"name":"Scroll","description":"The Scroll component enhances scrolling experiences by adding visual cues, such as inner shadows, to indicate additional content. It is useful for horizontally or vertically scrolling lists and containers.","url":"/component/scroll","category":"component"},{"name":"Select","description":"Selects allow the user to select one or more options from a set.","url":"/component/select","category":"component"},{"name":"Skeleton","description":"Skeletons provide placeholder elements that mimic the layout of content while data is loading. They improve perceived performance by giving users a visual cue that content is being fetched.","url":"/component/skeleton","category":"component"},{"name":"Slider","description":"Sliders allow users to select a numeric value or range by dragging a handle along a track. They are ideal for adjusting settings such as volume, brightness, or price filters.","url":"/component/slider","category":"component"},{"name":"Spacer","description":"Spacers create adjustable gaps between elements within flex layouts, helping to control spacing and alignment without using margin or padding directly.","url":"/component/spacer","category":"component"},{"name":"Spinner","description":"Spinners visually indicate that a background process or operation is ongoing, such as loading data or submitting a form. They help manage user expectations by signaling that the system is working.","url":"/component/spinner","category":"component"},{"name":"Stepper","description":"Stepper is a navigation component that guides users through the steps of a task.","url":"/component/stepper","category":"component"},{"name":"Table","description":"Tables are used to display data in a tabular format.","url":"/component/table","category":"component"},{"name":"Tabs","description":"Tabs are used to navigate through a set of views.","url":"/component/tabs","category":"component"},{"name":"Tag","description":"Tags are compact elements used to display brief information, such as categories, statuses, or labels. They help organize content and provide quick context or filtering options within lists and interfaces.","url":"/component/tag","category":"component"},{"name":"Textarea","description":"Textareas provide a multi-line input field for users to enter longer text, such as comments, descriptions, or messages. They support resizing and can be customized for different use cases.","url":"/component/textarea","category":"component"},{"name":"Toggle","description":"Toggles provide a simple switch interface for enabling or disabling a setting, or switching between two mutually exclusive states. They are ideal for binary options such as on/off, active/inactive, or show/hide.","url":"/component/toggle","category":"component"},{"name":"Tooltip","description":"Tooltips are used to display a message when hovering over an element.","url":"/component/tooltip","category":"component"},{"name":"Upload","description":"Upload is a component that allows you to upload files.","url":"/component/upload","category":"component"},{"name":"VirtualGrid","description":"VirtualGrid is a component that allows you to render a grid of items in a virtualized way. It is a high-performance component that is used to render large grids of items.","url":"/component/virtualGrid","category":"component"},{"name":"VirtualList","description":"VirtualList is a component that allows you to render a list of items in a virtualized way. It is a high-performance component that is used to render large lists of items.","url":"/component/virtualList","category":"component"}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"Icons","description":"Custom icon set integration for Indielayer UI components.","url":"/icons","category":"guide"},{"name":"Colors","description":"Color palette, semantic tokens, and color props on components.","url":"/colors","category":"guide"},{"name":"Typography","description":"Type scale and typography utilities used across the library.","url":"/typography","category":"guide"},{"name":"Accordion","description":"Accordion is a component that allows you to collapse and expand content.","url":"/component/accordion","category":"component"},{"name":"Alert","description":"Alerts are used to communicate a state that affects a system, feature or page.","url":"/component/alert","category":"component"},{"name":"Avatar","description":"Avatars are used to represent a user.","url":"/component/avatar","category":"component"},{"name":"Badge","description":"Badges are used to display a small amount of information.","url":"/component/badge","category":"component"},{"name":"Breadcrumbs","description":"Breadcrumbs are used to indicate the current page\\","url":"/component/breadcrumbs","category":"component"},{"name":"Button","description":"Buttons allow users to perform actions and make choices with a single click. They are commonly used for submitting forms, opening dialogs or menus, and executing commands. Buttons can be customized with different styles, sizes, and icons to fit various use cases.","url":"/component/button","category":"component"},{"name":"Card","description":"Cards are used to display content in an organized manner.","url":"/component/card","category":"component"},{"name":"Carousel","description":"A carousel is a rotating set of images.","url":"/component/carousel","category":"component"},{"name":"Checkbox","description":"Checkboxes enable users to select one or multiple options from a list. They are ideal for toggling settings or making selections where more than one choice is allowed. Each checkbox can be checked or unchecked independently.","url":"/component/checkbox","category":"component"},{"name":"Container","description":"Containers provide a flexible layout element for grouping and organizing content. They help structure pages by controlling width, alignment, and spacing, ensuring consistent presentation across different sections.","url":"/component/container","category":"component"},{"name":"Datepicker","description":"The datepicker component is used to select a date or time.","url":"/component/datepicker","category":"component"},{"name":"Divider","description":"Dividers are used to separate content.","url":"/component/divider","category":"component"},{"name":"Drawer","description":"Drawers slide in from the edge of the screen to present navigation, options, or additional content without disrupting the main view. They are ideal for menus, filters, or contextual panels.","url":"/component/drawer","category":"component"},{"name":"Form","description":"Forms provide a structured way to collect and validate user input, such as text, selections, and files. They support features like validation, grouping, and submission handling, making it easy to build interactive and accessible data entry interfaces.","url":"/component/form","category":"component"},{"name":"FormGroup","description":"Form groups organize related form elements together, providing structure and shared validation. They help group checkboxes, radio buttons, or inputs that belong to the same logical section.","url":"/component/formGroup","category":"component"},{"name":"Icon","description":"Icons visually represent actions, objects, or concepts, enhancing usability and recognition in interfaces. They can be used alone or alongside text for buttons, menus, and indicators.","url":"/component/icon","category":"component"},{"name":"Image","description":"Image is used to load an image file with a skeleton as placeholder and on load display the image.","url":"/component/image","category":"component"},{"name":"InfiniteLoader","description":"InfiniteLoader is a component that allows you to load data on demand as users scroll through a list.","url":"/component/infiniteLoader","category":"component"},{"name":"Input","description":"This is a text input component that allows users to enter and edit text.","url":"/component/input","category":"component"},{"name":"Link","description":"Links are used to navigate to a different page.","url":"/component/link","category":"component"},{"name":"Loader","description":"Loader component is used to show a loading state.","url":"/component/loader","category":"component"},{"name":"Menu","description":"Menus are used to display a list of options.","url":"/component/menu","category":"component"},{"name":"Modal","description":"Modals are used to display content on top of the current page.","url":"/component/modal","category":"component"},{"name":"Notifications","description":"Notifications provide timely feedback or alerts to users, such as success messages, warnings, or errors. They help keep users informed about important events or actions.","url":"/component/notifications","category":"component"},{"name":"Pagination","description":"Pagination divides large sets of content into manageable pages, allowing users to navigate through items efficiently. It is commonly used in tables, lists, and search results to improve usability and performance.","url":"/component/pagination","category":"component"},{"name":"Popover","description":"Popovers display additional information or interactive content in a floating overlay, anchored to a trigger element. They are useful for tooltips, menus, or contextual actions without navigating away from the current view.","url":"/component/popover","category":"component"},{"name":"Progress","description":"Progress indicators visually communicate the completion status of a task or process, such as file uploads or data loading. They help users understand how much work remains.","url":"/component/progress","category":"component"},{"name":"QR Code","description":"The QR Code component is used to generate a QR code.","url":"/component/qrCode","category":"component"},{"name":"Radio","description":"Radios allow the user to select one option from a set. Use radio buttons for exclusive selection if you think that the user needs to see all available options side-by-side.","url":"/component/radio","category":"component"},{"name":"Scroll","description":"The Scroll component enhances scrolling experiences by adding visual cues, such as inner shadows, to indicate additional content. It is useful for horizontally or vertically scrolling lists and containers.","url":"/component/scroll","category":"component"},{"name":"Select","description":"Selects allow the user to select one or more options from a set.","url":"/component/select","category":"component"},{"name":"Skeleton","description":"Skeletons provide placeholder elements that mimic the layout of content while data is loading. They improve perceived performance by giving users a visual cue that content is being fetched.","url":"/component/skeleton","category":"component"},{"name":"Slider","description":"Sliders allow users to select a numeric value or range by dragging a handle along a track. They are ideal for adjusting settings such as volume, brightness, or price filters.","url":"/component/slider","category":"component"},{"name":"Spacer","description":"Spacers create adjustable gaps between elements within flex layouts, helping to control spacing and alignment without using margin or padding directly.","url":"/component/spacer","category":"component"},{"name":"Spinner","description":"Spinners visually indicate that a background process or operation is ongoing, such as loading data or submitting a form. They help manage user expectations by signaling that the system is working.","url":"/component/spinner","category":"component"},{"name":"Stepper","description":"Stepper is a navigation component that guides users through the steps of a task.","url":"/component/stepper","category":"component"},{"name":"Table","description":"Tables are used to display data in a tabular format.","url":"/component/table","category":"component"},{"name":"Tabs","description":"Tabs are used to navigate through a set of views.","url":"/component/tabs","category":"component"},{"name":"Tag","description":"Tags are compact elements used to display brief information, such as categories, statuses, or labels. They help organize content and provide quick context or filtering options within lists and interfaces.","url":"/component/tag","category":"component"},{"name":"Textarea","description":"Textareas provide a multi-line input field for users to enter longer text, such as comments, descriptions, or messages. They support resizing and can be customized for different use cases.","url":"/component/textarea","category":"component"},{"name":"Toggle","description":"Toggles provide a simple switch interface for enabling or disabling a setting, or switching between two mutually exclusive states. They are ideal for binary options such as on/off, active/inactive, or show/hide.","url":"/component/toggle","category":"component"},{"name":"Tooltip","description":"Tooltips are used to display a message when hovering over an element.","url":"/component/tooltip","category":"component"},{"name":"Upload","description":"Upload is a component that allows you to upload files.","url":"/component/upload","category":"component"},{"name":"VirtualGrid","description":"VirtualGrid is a component that allows you to render a grid of items in a virtualized way. It is a high-performance component that is used to render large grids of items.","url":"/component/virtualGrid","category":"component"},{"name":"VirtualList","description":"VirtualList is a component that allows you to render a list of items in a virtualized way. It is a high-performance component that is used to render large lists of items.","url":"/component/virtualList","category":"component"}]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const t = {
|
|
2
2
|
classes: {
|
|
3
3
|
wrapper: ({ props: e }) => `flex justify-center items-center ${e.vertical ? "h-full flex-col" : "w-full"}`,
|
|
4
|
-
label: "font-medium text-
|
|
4
|
+
label: "font-medium text-xs text-slate-400 dark:text-secondary-300",
|
|
5
5
|
line: "bg-secondary-200 dark:bg-secondary-700 flex-grow"
|
|
6
6
|
}
|
|
7
7
|
}, l = t;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { defineComponent as W, useAttrs as X, computed as c, ref as
|
|
1
|
+
import { defineComponent as W, useAttrs as X, computed as c, ref as w, watch as D, openBlock as i, createBlock as s, normalizeStyle as G, unref as r, normalizeClass as a, withCtx as J, createElementVNode as S, renderSlot as k, createCommentVNode as m, mergeProps as K, toHandlers as M } from "vue";
|
|
2
2
|
import { useTheme as Q } from "../../composables/useTheme.js";
|
|
3
3
|
import { useColors as U } from "../../composables/useColors.js";
|
|
4
|
-
import { useCommon as
|
|
4
|
+
import { useCommon as z } from "../../composables/useCommon.js";
|
|
5
5
|
import { useInputtable as f } from "../../composables/useInputtable.js";
|
|
6
|
-
import { useInteractive as
|
|
6
|
+
import { useInteractive as C } from "../../composables/useInteractive.js";
|
|
7
7
|
import { closeIcon as Y, eyeIcon as Z, eyeVisibleIcon as x } from "../../common/icons.js";
|
|
8
8
|
import _ from "../label/Label.vue.js";
|
|
9
9
|
import p from "../icon/Icon.vue.js";
|
|
10
10
|
import ee from "../inputFooter/InputFooter.vue.js";
|
|
11
11
|
const re = { class: "relative" }, oe = ["id", "disabled", "min", "max", "minlength", "maxlength", "step", "dir", "name", "placeholder", "readonly", "type", "value"], ne = {
|
|
12
|
-
...k.props(),
|
|
13
|
-
...U.props("primary"),
|
|
14
12
|
...z.props(),
|
|
13
|
+
...U.props("primary"),
|
|
14
|
+
...C.props(),
|
|
15
15
|
...f.props(),
|
|
16
16
|
showPasswordToggle: {
|
|
17
17
|
type: Boolean,
|
|
@@ -40,18 +40,18 @@ const re = { class: "relative" }, oe = ["id", "disabled", "min", "max", "minleng
|
|
|
40
40
|
}, te = {
|
|
41
41
|
name: "XInput",
|
|
42
42
|
validators: {
|
|
43
|
-
...
|
|
43
|
+
...z.validators()
|
|
44
44
|
}
|
|
45
45
|
}, ge = /* @__PURE__ */ W({
|
|
46
46
|
...te,
|
|
47
47
|
props: ne,
|
|
48
48
|
emits: f.emits(),
|
|
49
|
-
setup(
|
|
50
|
-
const o =
|
|
49
|
+
setup(I, { expose: N, emit: V }) {
|
|
50
|
+
const o = I, $ = V, g = X(), B = c(() => Object.keys(g).reduce((e, n) => (n.startsWith("data-") && (e[n] = g[n]), e), {})), h = w(null), l = w(o.type);
|
|
51
51
|
D(() => o.type, (e) => {
|
|
52
52
|
l.value = e;
|
|
53
53
|
});
|
|
54
|
-
function
|
|
54
|
+
function L(e) {
|
|
55
55
|
if (!e.target)
|
|
56
56
|
return;
|
|
57
57
|
const n = e.target;
|
|
@@ -60,22 +60,22 @@ const re = { class: "relative" }, oe = ["id", "disabled", "min", "max", "minleng
|
|
|
60
60
|
typeof o.min < "u" && u < Number(o.min) && (n.value = o.min.toString()), typeof o.max < "u" && u > Number(o.max) && (n.value = o.max.toString());
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
function
|
|
63
|
+
function P() {
|
|
64
64
|
l.value = l.value === "password" ? "text" : "password";
|
|
65
65
|
}
|
|
66
|
-
const
|
|
66
|
+
const b = c(() => o.clearable && o.modelValue !== ""), { focus: y, blur: R } = C(h), {
|
|
67
67
|
errorInternal: d,
|
|
68
68
|
hideFooterInternal: T,
|
|
69
69
|
isInsideForm: q,
|
|
70
70
|
inputListeners: A,
|
|
71
|
-
reset:
|
|
71
|
+
reset: v,
|
|
72
72
|
validate: E,
|
|
73
73
|
setError: F
|
|
74
|
-
} = f(o, { focus:
|
|
74
|
+
} = f(o, { focus: y, emit: $ }), j = c(() => {
|
|
75
75
|
const e = o.modelValue;
|
|
76
76
|
return e ? String(e).length : 0;
|
|
77
77
|
}), { styles: H, classes: t, className: O } = Q("Input", {}, o, { errorInternal: d });
|
|
78
|
-
return
|
|
78
|
+
return N({ focus: y, blur: R, reset: v, validate: E, setError: F }), (e, n) => (i(), s(_, {
|
|
79
79
|
style: G(r(H)),
|
|
80
80
|
block: e.block,
|
|
81
81
|
disabled: e.disabled,
|
|
@@ -89,8 +89,8 @@ const re = { class: "relative" }, oe = ["id", "disabled", "min", "max", "minleng
|
|
|
89
89
|
tooltip: e.tooltip
|
|
90
90
|
}, {
|
|
91
91
|
default: J(() => [
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
S("div", re, [
|
|
93
|
+
k(e.$slots, "prefix", {}, () => [
|
|
94
94
|
e.iconLeft || e.icon ? (i(), s(p, {
|
|
95
95
|
key: 0,
|
|
96
96
|
size: e.size,
|
|
@@ -98,18 +98,17 @@ const re = { class: "relative" }, oe = ["id", "disabled", "min", "max", "minleng
|
|
|
98
98
|
class: a(["ml-2 left-1", r(t).icon])
|
|
99
99
|
}, null, 8, ["size", "icon", "class"])) : m("", !0)
|
|
100
100
|
]),
|
|
101
|
-
|
|
101
|
+
S("input", K({
|
|
102
102
|
id: e.id,
|
|
103
103
|
ref_key: "elRef",
|
|
104
104
|
ref: h,
|
|
105
105
|
class: [
|
|
106
106
|
r(t).input,
|
|
107
|
-
e.type === "password" ? "pr-10" : "",
|
|
108
107
|
// error
|
|
109
108
|
r(d) ? "border-error-500 dark:border-error-400 focus:outline-error-500" : "focus:outline-[color:var(--x-input-border)]",
|
|
110
109
|
{
|
|
111
110
|
"!pl-10": e.iconLeft || e.icon,
|
|
112
|
-
"!pr-10": e.iconRight
|
|
111
|
+
"!pr-10": e.iconRight || e.showPasswordToggle || b.value
|
|
113
112
|
}
|
|
114
113
|
],
|
|
115
114
|
disabled: e.disabled,
|
|
@@ -124,14 +123,14 @@ const re = { class: "relative" }, oe = ["id", "disabled", "min", "max", "minleng
|
|
|
124
123
|
readonly: e.readonly,
|
|
125
124
|
type: l.value,
|
|
126
125
|
value: typeof e.modelValue < "u" ? e.modelValue : ""
|
|
127
|
-
},
|
|
128
|
-
|
|
129
|
-
|
|
126
|
+
}, B.value, M(r(A), !0), { onChange: L }), null, 16, oe),
|
|
127
|
+
k(e.$slots, "suffix", {}, () => [
|
|
128
|
+
b.value ? (i(), s(p, {
|
|
130
129
|
key: 0,
|
|
131
130
|
size: e.size,
|
|
132
131
|
icon: r(Y),
|
|
133
132
|
class: a(["mr-2 right-1 cursor-pointer", r(t).icon]),
|
|
134
|
-
onClick: n[0] || (n[0] = (u) => r(
|
|
133
|
+
onClick: n[0] || (n[0] = (u) => r(v)())
|
|
135
134
|
}, null, 8, ["size", "icon", "class"])) : m("", !0),
|
|
136
135
|
e.iconRight ? (i(), s(p, {
|
|
137
136
|
key: 1,
|
|
@@ -143,7 +142,7 @@ const re = { class: "relative" }, oe = ["id", "disabled", "min", "max", "minleng
|
|
|
143
142
|
size: e.size,
|
|
144
143
|
icon: l.value === "password" ? r(Z) : r(x),
|
|
145
144
|
class: a(["mr-2 right-1 cursor-pointer", r(t).icon]),
|
|
146
|
-
onClick: n[1] || (n[1] = (u) =>
|
|
145
|
+
onClick: n[1] || (n[1] = (u) => P())
|
|
147
146
|
}, null, 8, ["size", "icon", "class"])) : m("", !0)
|
|
148
147
|
])
|
|
149
148
|
]),
|
|
@@ -14,6 +14,9 @@ declare const selectProps: {
|
|
|
14
14
|
type: StringConstructor;
|
|
15
15
|
default: string;
|
|
16
16
|
};
|
|
17
|
+
filterablePrefix: BooleanConstructor;
|
|
18
|
+
filterableSuffix: BooleanConstructor;
|
|
19
|
+
hideSelectedOptionSlots: BooleanConstructor;
|
|
17
20
|
virtualList: BooleanConstructor;
|
|
18
21
|
virtualListOffsetTop: NumberConstructor;
|
|
19
22
|
virtualListOffsetBottom: NumberConstructor;
|
|
@@ -96,6 +99,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
|
|
|
96
99
|
type: StringConstructor;
|
|
97
100
|
default: string;
|
|
98
101
|
};
|
|
102
|
+
filterablePrefix: BooleanConstructor;
|
|
103
|
+
filterableSuffix: BooleanConstructor;
|
|
104
|
+
hideSelectedOptionSlots: BooleanConstructor;
|
|
99
105
|
virtualList: BooleanConstructor;
|
|
100
106
|
virtualListOffsetTop: NumberConstructor;
|
|
101
107
|
virtualListOffsetBottom: NumberConstructor;
|
|
@@ -854,6 +860,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
|
|
|
854
860
|
type: StringConstructor;
|
|
855
861
|
default: string;
|
|
856
862
|
};
|
|
863
|
+
filterablePrefix: BooleanConstructor;
|
|
864
|
+
filterableSuffix: BooleanConstructor;
|
|
865
|
+
hideSelectedOptionSlots: BooleanConstructor;
|
|
857
866
|
virtualList: BooleanConstructor;
|
|
858
867
|
virtualListOffsetTop: NumberConstructor;
|
|
859
868
|
virtualListOffsetBottom: NumberConstructor;
|
|
@@ -927,6 +936,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
|
|
|
927
936
|
native: boolean;
|
|
928
937
|
filterable: boolean;
|
|
929
938
|
filterPlaceholder: string;
|
|
939
|
+
filterablePrefix: boolean;
|
|
940
|
+
filterableSuffix: boolean;
|
|
941
|
+
hideSelectedOptionSlots: boolean;
|
|
930
942
|
virtualList: boolean;
|
|
931
943
|
virtualListItemHeight: number;
|
|
932
944
|
virtualListOverscan: number;
|
|
@@ -1263,23 +1275,13 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
|
|
|
1263
1275
|
disabled: boolean;
|
|
1264
1276
|
label: string;
|
|
1265
1277
|
}): any;
|
|
1266
|
-
|
|
1278
|
+
prefix?(_: {
|
|
1267
1279
|
item: SelectOption | undefined;
|
|
1268
1280
|
}): any;
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
item: {
|
|
1272
|
-
value: string | number;
|
|
1273
|
-
label: string;
|
|
1274
|
-
active: boolean;
|
|
1275
|
-
prefix: string | undefined;
|
|
1276
|
-
suffix: string | undefined;
|
|
1277
|
-
disabled: boolean | undefined;
|
|
1278
|
-
iconRight: string | undefined;
|
|
1279
|
-
keepOpenOnClick: boolean | undefined;
|
|
1280
|
-
onClick: () => void;
|
|
1281
|
-
};
|
|
1281
|
+
suffix?(_: {
|
|
1282
|
+
item: SelectOption | undefined;
|
|
1282
1283
|
}): any;
|
|
1284
|
+
"content-header"?(_: {}): any;
|
|
1283
1285
|
label?(_: {
|
|
1284
1286
|
item: {
|
|
1285
1287
|
value: string | number;
|
|
@@ -1293,19 +1295,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
|
|
|
1293
1295
|
onClick: () => void;
|
|
1294
1296
|
};
|
|
1295
1297
|
}): any;
|
|
1296
|
-
suffix?(_: {
|
|
1297
|
-
item: {
|
|
1298
|
-
value: string | number;
|
|
1299
|
-
label: string;
|
|
1300
|
-
active: boolean;
|
|
1301
|
-
prefix: string | undefined;
|
|
1302
|
-
suffix: string | undefined;
|
|
1303
|
-
disabled: boolean | undefined;
|
|
1304
|
-
iconRight: string | undefined;
|
|
1305
|
-
keepOpenOnClick: boolean | undefined;
|
|
1306
|
-
onClick: () => void;
|
|
1307
|
-
};
|
|
1308
|
-
}): any;
|
|
1309
1298
|
"content-footer"?(_: {}): any;
|
|
1310
1299
|
icon?(_: {}): any;
|
|
1311
1300
|
}>;
|