@appsbd/vue3-appsbd-ui 1.0.13 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,8 +2,25 @@
2
2
 
3
3
  All notable changes to `@appsbd/vue3-appsbd-ui` are documented here. Format loosely follows [Keep a Changelog](https://keepachangelog.com/).
4
4
 
5
- ## [Unreleased] (1.0.13)
6
-
5
+ ## [1.0.14] - 2026-08-19
6
+
7
+ - **Added**: `abDate` library — dependency-free date/datetime/time formatter (`formatDate`, `formatDateTime`, `formatTime`, `formatCustom`) with no timezone conversion; resolves its default format from the new `dateDisplayFormat`/`datetimeDisplayFormat`/`timeDisplayFormat` global config keys, falling back to MySQL-style defaults (`YYYY-MM-DD`, `YYYY-MM-DD HH:mm:ss`, `HH:mm:ss`). Same token set as `AbDateTimePicker`, plus real second support (`ss`/`s`). Documented in the new `AbDateTest` playground page.
8
+ - **Added**: `AbFileUploader` `type` prop (`"image"` default | `"file"`) for generic (non-image) uploads, showing an extension icon instead of a thumbnail for non-image files; `allowedTypes` prop (required in `type="file"` mode, also drives the input's `accept` attribute); `showFileName` prop (auto on for `file` mode, off for `image` mode); `width`/`height` props for the container.
9
+ - **Changed**: `useFileValidator().getFileInfo(file, sizeLimitMb, allowedExtensions?)` accepts an optional `allowedExtensions` array to validate against a custom extension list instead of the built-in image MIME map (used internally by `AbFileUploader`'s new `file` mode).
10
+ - **Added**: `AbFormCheck` `icon-card`, `card-flat-check`, and `image-radio` variants; `selectorPosition` prop (which corner the check badge overlays on `image-radio`) and `isBoxShadow` prop (colored box-shadow glow instead of a border-color change, card-family variants).
11
+ - **Changed**: `AbFormCheck` card-family/segmented/pill rows are now clickable anywhere in the card (not just the label text) to toggle the option; per-option `input-icon`/`option-label`/`description` slots are now static and scoped with `:check`/`:index`, replacing the old per-title dynamic slot names (`input-icon-${title}` etc.); the `description` slot's default content now renders as HTML.
12
+ - **Fixed**: `AbNumberField` increment/decrement buttons were incorrectly disabled whenever the field was empty (no value yet), even with no `min`/`max` set; now only disabled once a value is present and actually reaches the configured `min`/`max`.
13
+ - **Added**: `AbInputField` `input-group-text-border-both` layout — applied automatically when both a left and right icon/prefix/postfix are present, giving the combined input-group a single bordered outline with shared focus and error box-shadow states (previously only one side could be borderless-adjacent).
14
+ - **Changed**: `AbChatInput` `borderRadius` prop default changed from `"1.5rem"` to `"2.5rem"`.
15
+ - **Fixed**: `AbMainLayout` (`.apbd-container`) full-height on iPhone Safari — `100vh`/`100vw` were declared *after* `100dvh`/`100dvw`, so the plain viewport units always won the cascade and negated the dynamic-viewport fallback; the container was sized to the toolbar-hidden max viewport, overflowing and forcing the whole page to scroll when the address bar was visible. Reordered so `dvh`/`dvw` override last, and added the missing `100dvh` to the mobile (`max-width: 575.98px`) breakpoint.
16
+
17
+ ## [1.0.13] - 2026-08-11
18
+
19
+ - **Added**: `AbChatInput` + `AbChatInputMenuItem` — a ChatGPT-style auto-growing chat composer with an item-count-driven add/more dropdown (custom-positioned, matching the composer's full width, opens below by default and flips above without ever clipping when there isn't room below), a stacked "grown" layout (textarea full-width on top, left/right controls on their own row below once content passes one line), and internally-validated file attachment preview (no 3rd-party libraries).
20
+ - **Added**: `AbChatInput`'s `left`/`right`/`menu-trigger`/`single-input`/`multiple-input` slots are now scoped, handing back `addToAttach`/`addFiles`/`removeFile`/`clearFiles`/`updateText`/`focus` — slot content (e.g. a dropdown menu item's `action`) can drive the composer directly with no template `<input type="file">` and no manual template refs. Also exposed as template-ref methods for use outside any slot.
21
+ - **Added**: `AbChatInput` `borderRadius` (any CSS length, default `1.5rem`), `filePreviewWidth`/`filePreviewHeight` (px, default `24`), and `showFileName` (default `true`) props, for customizing the composer's roundness and each attached file chip's thumbnail/icon size and filename visibility.
22
+ - **Fixed**: `AbChatInput` — eliminated a flicker during real (keystroke-by-keystroke) typing right at the single-line/multi-line boundary, where the textarea had already grown taller but the row's layout hadn't switched to the stacked mode yet, leaving the button visually stuck mid-block instead of dropping below.
23
+ - **Fixed**: `useFileValidator().getFileIconByExt()` — the fallback icon for extensions with no dedicated case (e.g. `.txt`, `.csv`, `.json`) was a legacy icon-font CSS class string, not a component; `AbChatInput` renders it via `<component :is>`, so those files silently failed to render a file chip. Now falls back to a proper `File` icon component from `@lucide/vue`.
7
24
  - **Added**: `AbFilterPanel` `isAjaxSearch` + async `onSearch(query)` support on quick-advance `dd` fields, fetching remote options as the user types in the popover search box.
8
25
  - **Added**: `AbFilterPanel` multi-select (`isMultiple`) support for quick-advance `dd` fields, with `operators: "in"` array values.
9
26
  - **Added**: `AbWizard` `backgroundColor` prop to set an explicit background on the wizard root/modal-content; a nested `AbSettingsForm` automatically goes transparent to match it.