waibu-bootstrap 2.12.2 → 2.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/.github/FUNDING.yml +0 -0
  2. package/.github/workflows/repo-lockdown.yml +0 -0
  3. package/.jsdoc.conf.json +0 -0
  4. package/LICENSE +0 -0
  5. package/README.md +0 -0
  6. package/docs/WaibuBootstrap.html +0 -0
  7. package/docs/data/search.json +0 -0
  8. package/docs/fonts/Inconsolata-Regular.ttf +0 -0
  9. package/docs/fonts/OpenSans-Regular.ttf +0 -0
  10. package/docs/fonts/WorkSans-Bold.ttf +0 -0
  11. package/docs/global.html +0 -0
  12. package/docs/index.html +0 -0
  13. package/docs/index.js.html +0 -0
  14. package/docs/scripts/core.js +0 -0
  15. package/docs/scripts/core.min.js +0 -0
  16. package/docs/scripts/resize.js +0 -0
  17. package/docs/scripts/search.js +0 -0
  18. package/docs/scripts/search.min.js +5 -5
  19. package/docs/scripts/third-party/Apache-License-2.0.txt +0 -0
  20. package/docs/scripts/third-party/fuse.js +0 -0
  21. package/docs/scripts/third-party/hljs-line-num-original.js +0 -0
  22. package/docs/scripts/third-party/hljs-line-num.js +0 -0
  23. package/docs/scripts/third-party/hljs-original.js +0 -0
  24. package/docs/scripts/third-party/hljs.js +0 -0
  25. package/docs/scripts/third-party/popper.js +0 -0
  26. package/docs/scripts/third-party/tippy.js +0 -0
  27. package/docs/scripts/third-party/tocbot.js +0 -0
  28. package/docs/scripts/third-party/tocbot.min.js +0 -0
  29. package/docs/static/bitcoin.jpeg +0 -0
  30. package/docs/static/home.md +0 -0
  31. package/docs/static/logo-ecosystem.png +0 -0
  32. package/docs/static/logo.png +0 -0
  33. package/docs/styles/clean-jsdoc-theme-base.css +0 -0
  34. package/docs/styles/clean-jsdoc-theme-dark.css +0 -0
  35. package/docs/styles/clean-jsdoc-theme-light.css +0 -0
  36. package/docs/styles/clean-jsdoc-theme-scrollbar.css +0 -0
  37. package/docs/styles/clean-jsdoc-theme-without-scrollbar.min.css +0 -0
  38. package/docs/styles/clean-jsdoc-theme.min.css +0 -0
  39. package/extend/bajo/intl/id.json +0 -0
  40. package/extend/waibuMpa/theme/component/method/after-build-tag/_lib.js +0 -0
  41. package/extend/waibuMpa/theme/component/method/after-build-tag/active.js +0 -0
  42. package/extend/waibuMpa/theme/component/method/after-build-tag/background.js +0 -0
  43. package/extend/waibuMpa/theme/component/method/after-build-tag/border.js +0 -0
  44. package/extend/waibuMpa/theme/component/method/after-build-tag/dim.js +0 -0
  45. package/extend/waibuMpa/theme/component/method/after-build-tag/disabled.js +0 -0
  46. package/extend/waibuMpa/theme/component/method/after-build-tag/display.js +0 -0
  47. package/extend/waibuMpa/theme/component/method/after-build-tag/flex.js +0 -0
  48. package/extend/waibuMpa/theme/component/method/after-build-tag/font.js +0 -0
  49. package/extend/waibuMpa/theme/component/method/after-build-tag/gutter.js +0 -0
  50. package/extend/waibuMpa/theme/component/method/after-build-tag/label.js +0 -0
  51. package/extend/waibuMpa/theme/component/method/after-build-tag/link.js +0 -0
  52. package/extend/waibuMpa/theme/component/method/after-build-tag/margin-padding.js +0 -0
  53. package/extend/waibuMpa/theme/component/method/after-build-tag/popover.js +0 -0
  54. package/extend/waibuMpa/theme/component/method/after-build-tag/position.js +0 -0
  55. package/extend/waibuMpa/theme/component/method/after-build-tag/rounded.js +0 -0
  56. package/extend/waibuMpa/theme/component/method/after-build-tag/text.js +0 -0
  57. package/extend/waibuMpa/theme/component/method/after-build-tag/tooltip.js +0 -0
  58. package/extend/waibuMpa/theme/component/method/after-build-tag.js +0 -0
  59. package/extend/waibuMpa/theme/component/widget/_lib.js +8 -2
  60. package/extend/waibuMpa/theme/component/widget/a.js +0 -0
  61. package/extend/waibuMpa/theme/component/widget/accordion-item.js +0 -0
  62. package/extend/waibuMpa/theme/component/widget/accordion.js +0 -0
  63. package/extend/waibuMpa/theme/component/widget/alert.js +0 -0
  64. package/extend/waibuMpa/theme/component/widget/app-launcher-trigger.js +0 -0
  65. package/extend/waibuMpa/theme/component/widget/app-launcher.js +0 -0
  66. package/extend/waibuMpa/theme/component/widget/badge.js +0 -0
  67. package/extend/waibuMpa/theme/component/widget/blockquote.js +0 -0
  68. package/extend/waibuMpa/theme/component/widget/breadcrumb-item.js +0 -0
  69. package/extend/waibuMpa/theme/component/widget/breadcrumb.js +0 -0
  70. package/extend/waibuMpa/theme/component/widget/btn-back-to-top.js +0 -0
  71. package/extend/waibuMpa/theme/component/widget/btn-close.js +0 -0
  72. package/extend/waibuMpa/theme/component/widget/btn-group.js +0 -0
  73. package/extend/waibuMpa/theme/component/widget/btn-toolbar.js +0 -0
  74. package/extend/waibuMpa/theme/component/widget/btn.js +0 -0
  75. package/extend/waibuMpa/theme/component/widget/card-body.js +0 -0
  76. package/extend/waibuMpa/theme/component/widget/card-footer.js +0 -0
  77. package/extend/waibuMpa/theme/component/widget/card-group.js +0 -0
  78. package/extend/waibuMpa/theme/component/widget/card-header.js +0 -0
  79. package/extend/waibuMpa/theme/component/widget/card-link.js +0 -0
  80. package/extend/waibuMpa/theme/component/widget/card-subtitle.js +0 -0
  81. package/extend/waibuMpa/theme/component/widget/card-text.js +0 -0
  82. package/extend/waibuMpa/theme/component/widget/card-title.js +0 -0
  83. package/extend/waibuMpa/theme/component/widget/card.js +0 -0
  84. package/extend/waibuMpa/theme/component/widget/carousel-item.js +0 -0
  85. package/extend/waibuMpa/theme/component/widget/carousel.js +0 -0
  86. package/extend/waibuMpa/theme/component/widget/collapse-item.js +0 -0
  87. package/extend/waibuMpa/theme/component/widget/collapse.js +0 -0
  88. package/extend/waibuMpa/theme/component/widget/container.js +0 -0
  89. package/extend/waibuMpa/theme/component/widget/drawer-toolbar.js +0 -0
  90. package/extend/waibuMpa/theme/component/widget/drawer.js +0 -0
  91. package/extend/waibuMpa/theme/component/widget/dropdown-item.js +0 -0
  92. package/extend/waibuMpa/theme/component/widget/dropdown.js +0 -0
  93. package/extend/waibuMpa/theme/component/widget/fieldset.js +0 -0
  94. package/extend/waibuMpa/theme/component/widget/figcaption.js +0 -0
  95. package/extend/waibuMpa/theme/component/widget/figure.js +0 -0
  96. package/extend/waibuMpa/theme/component/widget/form-check-toggle.js +0 -0
  97. package/extend/waibuMpa/theme/component/widget/form-check.js +0 -0
  98. package/extend/waibuMpa/theme/component/widget/form-color.js +0 -0
  99. package/extend/waibuMpa/theme/component/widget/form-date.js +0 -0
  100. package/extend/waibuMpa/theme/component/widget/form-datetime.js +0 -0
  101. package/extend/waibuMpa/theme/component/widget/form-file.js +0 -0
  102. package/extend/waibuMpa/theme/component/widget/form-input-addon.js +0 -0
  103. package/extend/waibuMpa/theme/component/widget/form-input.js +2 -3
  104. package/extend/waibuMpa/theme/component/widget/form-password.js +0 -0
  105. package/extend/waibuMpa/theme/component/widget/form-plaintext.js +0 -0
  106. package/extend/waibuMpa/theme/component/widget/form-radio-toggle.js +0 -0
  107. package/extend/waibuMpa/theme/component/widget/form-radio.js +0 -0
  108. package/extend/waibuMpa/theme/component/widget/form-range.js +0 -0
  109. package/extend/waibuMpa/theme/component/widget/form-select-ext.js +1 -1
  110. package/extend/waibuMpa/theme/component/widget/form-select.js +0 -0
  111. package/extend/waibuMpa/theme/component/widget/form-switch.js +0 -0
  112. package/extend/waibuMpa/theme/component/widget/form-textarea.js +0 -0
  113. package/extend/waibuMpa/theme/component/widget/form-time.js +0 -0
  114. package/extend/waibuMpa/theme/component/widget/form.js +0 -0
  115. package/extend/waibuMpa/theme/component/widget/grid-col.js +0 -0
  116. package/extend/waibuMpa/theme/component/widget/grid-row.js +0 -0
  117. package/extend/waibuMpa/theme/component/widget/heading.js +0 -0
  118. package/extend/waibuMpa/theme/component/widget/img.js +0 -0
  119. package/extend/waibuMpa/theme/component/widget/lead.js +0 -0
  120. package/extend/waibuMpa/theme/component/widget/list-item.js +0 -0
  121. package/extend/waibuMpa/theme/component/widget/list.js +0 -0
  122. package/extend/waibuMpa/theme/component/widget/masonry.js +0 -0
  123. package/extend/waibuMpa/theme/component/widget/modal-body.js +0 -0
  124. package/extend/waibuMpa/theme/component/widget/modal-footer.js +0 -0
  125. package/extend/waibuMpa/theme/component/widget/modal-header.js +0 -0
  126. package/extend/waibuMpa/theme/component/widget/modal.js +0 -0
  127. package/extend/waibuMpa/theme/component/widget/nav-divider.js +0 -0
  128. package/extend/waibuMpa/theme/component/widget/nav-dropdown-darkmode.js +0 -0
  129. package/extend/waibuMpa/theme/component/widget/nav-dropdown-language.js +0 -0
  130. package/extend/waibuMpa/theme/component/widget/nav-dropdown-setting.js +0 -0
  131. package/extend/waibuMpa/theme/component/widget/nav-item-signout.js +0 -0
  132. package/extend/waibuMpa/theme/component/widget/nav-item.js +0 -0
  133. package/extend/waibuMpa/theme/component/widget/nav-toggle-fullscreen.js +0 -0
  134. package/extend/waibuMpa/theme/component/widget/nav.js +0 -0
  135. package/extend/waibuMpa/theme/component/widget/navbar-brand.js +0 -0
  136. package/extend/waibuMpa/theme/component/widget/navbar-text.js +0 -0
  137. package/extend/waibuMpa/theme/component/widget/navbar.js +0 -0
  138. package/extend/waibuMpa/theme/component/widget/pagination-item.js +0 -0
  139. package/extend/waibuMpa/theme/component/widget/pagination.js +0 -0
  140. package/extend/waibuMpa/theme/component/widget/progress-stack.js +0 -0
  141. package/extend/waibuMpa/theme/component/widget/progress.js +0 -0
  142. package/extend/waibuMpa/theme/component/widget/scrollspy.js +0 -0
  143. package/extend/waibuMpa/theme/component/widget/sidebar.js +0 -0
  144. package/extend/waibuMpa/theme/component/widget/spinner.js +0 -0
  145. package/extend/waibuMpa/theme/component/widget/table.js +0 -0
  146. package/extend/waibuMpa/theme/component/widget/tbody.js +0 -0
  147. package/extend/waibuMpa/theme/component/widget/td.js +0 -0
  148. package/extend/waibuMpa/theme/component/widget/tfoot.js +0 -0
  149. package/extend/waibuMpa/theme/component/widget/th.js +0 -0
  150. package/extend/waibuMpa/theme/component/widget/thead.js +0 -0
  151. package/extend/waibuMpa/theme/component/widget/toast-stack.js +0 -0
  152. package/extend/waibuMpa/theme/component/widget/toast.js +0 -0
  153. package/extend/waibuMpa/theme/component/widget/tr.js +0 -0
  154. package/extend/waibuMpa/theme.js +0 -0
  155. package/extend/waibuStatic/asset/css/wbs.css +0 -0
  156. package/extend/waibuStatic/asset/css/widget.css +33 -33
  157. package/extend/waibuStatic/asset/js/wbs.js +0 -0
  158. package/extend/waibuStatic/virtual.json +0 -0
  159. package/index.js +0 -0
  160. package/package.json +1 -1
  161. package/wiki/CHANGES.md +156 -147
  162. package/wiki/CONFIG.md +0 -0
  163. package/wiki/CONTRIBUTING.md +0 -0
File without changes
File without changes
package/.jsdoc.conf.json CHANGED
File without changes
package/LICENSE CHANGED
File without changes
package/README.md CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/docs/global.html CHANGED
File without changes
package/docs/index.html CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
- const searchId="LiBfqbJVcV",searchHash="#"+searchId,searchContainer=document.querySelector("#PkfLWpAbet"),searchWrapper=document.querySelector("#iCxFxjkHbP"),searchCloseButton=document.querySelector("#VjLlGakifb"),searchInput=document.querySelector("#vpcKVYIppa"),resultBox=document.querySelector("#fWwVHRuDuN");function showResultText(e){resultBox.innerHTML=`<span class="search-result-c-text">${e}</span>`}function hideSearch(){window.location.hash===searchHash&&history.go(-1),window.onhashchange=null,searchContainer&&(searchContainer.style.display="none")}function listenCloseKey(e){"Escape"===e.key&&(hideSearch(),window.removeEventListener("keyup",listenCloseKey))}function showSearch(){try{hideMobileMenu()}catch(e){console.error(e)}window.onhashchange=hideSearch,window.location.hash!==searchHash&&history.pushState(null,null,searchHash),searchContainer&&(searchContainer.style.display="flex",window.addEventListener("keyup",listenCloseKey)),searchInput&&searchInput.focus()}async function fetchAllData(){var{hostname:e,protocol:t,port:n}=location,t=t+"//"+e+(""!==n?":"+n:"")+baseURL,e=new URL("data/search.json",t);const a=await fetch(e);n=(await a.json()).list;return n}function onClickSearchItem(t){const n=t.currentTarget;if(n){const a=n.getAttribute("href")||"";t=a.split("#")[1]||"";let e=document.getElementById(t);e||(t=decodeURI(t),e=document.getElementById(t)),e&&setTimeout(function(){bringElementIntoView(e)},100)}}function buildSearchResult(e){let t="";var n=/(<([^>]+)>)/gi;for(const s of e){const{title:c="",description:i=""}=s.item;var a=s.item.link.replace('<a href="',"").replace(/">.*/,""),o=c.replace(n,""),r=i.replace(n,"");t+=`
2
- <a onclick="onClickSearchItem(event)" href="${a}" class="search-result-item">
3
- <div class="search-result-item-title">${o}</div>
4
- <div class="search-result-item-p">${r||"No description available."}</div>
5
- </a>
1
+ const searchId="LiBfqbJVcV",searchHash="#"+searchId,searchContainer=document.querySelector("#PkfLWpAbet"),searchWrapper=document.querySelector("#iCxFxjkHbP"),searchCloseButton=document.querySelector("#VjLlGakifb"),searchInput=document.querySelector("#vpcKVYIppa"),resultBox=document.querySelector("#fWwVHRuDuN");function showResultText(e){resultBox.innerHTML=`<span class="search-result-c-text">${e}</span>`}function hideSearch(){window.location.hash===searchHash&&history.go(-1),window.onhashchange=null,searchContainer&&(searchContainer.style.display="none")}function listenCloseKey(e){"Escape"===e.key&&(hideSearch(),window.removeEventListener("keyup",listenCloseKey))}function showSearch(){try{hideMobileMenu()}catch(e){console.error(e)}window.onhashchange=hideSearch,window.location.hash!==searchHash&&history.pushState(null,null,searchHash),searchContainer&&(searchContainer.style.display="flex",window.addEventListener("keyup",listenCloseKey)),searchInput&&searchInput.focus()}async function fetchAllData(){var{hostname:e,protocol:t,port:n}=location,t=t+"//"+e+(""!==n?":"+n:"")+baseURL,e=new URL("data/search.json",t);const a=await fetch(e);n=(await a.json()).list;return n}function onClickSearchItem(t){const n=t.currentTarget;if(n){const a=n.getAttribute("href")||"";t=a.split("#")[1]||"";let e=document.getElementById(t);e||(t=decodeURI(t),e=document.getElementById(t)),e&&setTimeout(function(){bringElementIntoView(e)},100)}}function buildSearchResult(e){let t="";var n=/(<([^>]+)>)/gi;for(const s of e){const{title:c="",description:i=""}=s.item;var a=s.item.link.replace('<a href="',"").replace(/">.*/,""),o=c.replace(n,""),r=i.replace(n,"");t+=`
2
+ <a onclick="onClickSearchItem(event)" href="${a}" class="search-result-item">
3
+ <div class="search-result-item-title">${o}</div>
4
+ <div class="search-result-item-p">${r||"No description available."}</div>
5
+ </a>
6
6
  `}return t}function getSearchResult(e,t,n){var t={...{shouldSort:!0,threshold:.4,location:0,distance:100,maxPatternLength:32,minMatchCharLength:1,keys:t}},a=Fuse.createIndex(t.keys,e);const o=new Fuse(e,t,a),r=o.search(n);return 20<r.length?r.slice(0,20):r}function debounce(t,n,a){let o;return function(){const e=arguments;clearTimeout(o),o=setTimeout(()=>{o=null,a||t.apply(this,e)},n),a&&!o&&t.apply(this,e)}}let searchData;async function search(e){e=e.target.value;if(resultBox)if(e){if(!searchData){showResultText("Loading...");try{searchData=await fetchAllData()}catch(e){return console.log(e),void showResultText("Failed to load result.")}}e=getSearchResult(searchData,["title","description"],e);e.length?resultBox.innerHTML=buildSearchResult(e):showResultText("No result found! Try some different combination.")}else showResultText("Type anything to view search result");else console.error("Search result container not found")}function onDomContentLoaded(){const e=document.querySelectorAll(".search-button");var t=debounce(search,300);searchCloseButton&&searchCloseButton.addEventListener("click",hideSearch),e&&e.forEach(function(e){e.addEventListener("click",showSearch)}),searchContainer&&searchContainer.addEventListener("click",hideSearch),searchWrapper&&searchWrapper.addEventListener("click",function(e){e.stopPropagation()}),searchInput&&searchInput.addEventListener("keyup",t),window.location.hash===searchHash&&showSearch()}window.addEventListener("DOMContentLoaded",onDomContentLoaded),window.addEventListener("hashchange",function(){window.location.hash===searchHash&&showSearch()});
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -16,6 +16,7 @@ async function getInputAttr (group, formControl = true, ro) {
16
16
 
17
17
  if (formControl) group._.class.push('form-control')
18
18
  const attr = omit(group._, ['hint', 'label', 'wrapper'])
19
+
19
20
  if (has(attr, 'name') && !has(attr, 'value')) {
20
21
  if (ro) attr.value = this.formData[attr.name]
21
22
  else {
@@ -126,10 +127,15 @@ export async function buildFormFile (group) {
126
127
  return await this.component.buildTag({ tag: 'input', attr, selfClosing: true })
127
128
  }
128
129
 
129
- export async function buildFormTextarea (group) {
130
+ export async function buildFormTextarea (group, opts = {}) {
130
131
  const attr = await getInputAttr.call(this, group)
131
132
  this.params.html = attr.value
132
- attr.style.minHeight = '100px'
133
+ if (attr.rows) {
134
+ let height = parseInt(attr.rows) * 1
135
+ if (opts.isLabelFloating) height += 3
136
+ attr.style.minHeight = `${height}em`
137
+ }
138
+ attr.style.minHeight = attr.style.minHeight ?? '100px'
133
139
  delete attr.value
134
140
  return await this.component.buildTag({ tag: 'textarea', attr, html: this.params.html })
135
141
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -2,7 +2,7 @@ import { buildFormHint, buildFormLabel, buildFormInput } from './_lib.js'
2
2
  import { sizes } from '../method/after-build-tag/_lib.js'
3
3
 
4
4
  export async function handleInput ({ handler, group } = {}) {
5
- const { trim, filter, has, omit, pull, find, get, isEmpty } = this.app.lib._
5
+ const { trim, filter, has, pull, find, get, isEmpty } = this.app.lib._
6
6
  const { attrToArray } = this.app.waibu
7
7
  const { $ } = this.component
8
8
  const addons = [...(this.params.addons ?? [])]
@@ -11,7 +11,6 @@ export async function handleInput ({ handler, group } = {}) {
11
11
  if (isLabelFloating) {
12
12
  group.wrapper.class.push('form-floating')
13
13
  group._.placeholder = group._.label
14
- group._ = omit(group._, ['rows'])
15
14
  }
16
15
  let errMsg = ''
17
16
  if (group._.name) {
@@ -31,7 +30,7 @@ export async function handleInput ({ handler, group } = {}) {
31
30
  const result = {
32
31
  prepend: [],
33
32
  append: [],
34
- input: await handler.call(this, group)
33
+ input: await handler.call(this, group, { isLabelFloating })
35
34
  }
36
35
  if (!isEmpty(errMsg)) result.input = $(result.input).addClass('is-invalid').prop('outerHTML')
37
36
  const el = {
@@ -20,7 +20,7 @@ async function formSelectExt () {
20
20
  const { base64JsonDecode } = this.app.waibu
21
21
  const { req } = this.component
22
22
  let apiKey = ''
23
- if (req.user && this.app.sumba) apiKey = await this.app.sumba.getApiKeyFromUserId(req.user.id)
23
+ if (req.user && req.user.id && this.app.sumba) apiKey = await this.app.sumba.getApiKeyFromUserId(req.user.id)
24
24
  const xref = this.params.attr['x-ref'] ?? this.params.attr.name
25
25
  this.params.attr.id = this.params.attr.id ?? generateId('alpha')
26
26
  this.params.attr['x-ref'] = xref
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,34 +1,34 @@
1
- .ts-dropdown {
2
- min-width: 242px;
3
- }
4
- .ts-control {
5
- padding-top: 0px;
6
- }
7
- .ts-wrapper {
8
- margin-left: calc(var(--bs-border-width) * -1) !important;
9
- border-top-left-radius: var(--bs-border-radius) !important;
10
- border-bottom-left-radius: var(--bs-border-radius) !important;
11
- white-space: nowrap !important;
12
- }
13
- .ts-control, .ts-control input, .ts-dropdown {
14
- color: inherit;
15
- }
16
- .form-floating > .ts-wrapper {
17
- padding-top: 1.625rem !important;
18
- }
19
-
20
- .ts-wrapper.focus {
21
- border-color: #86b7fe;
22
- outline: 0;
23
- box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
24
- }
25
-
26
- .focus .ts-control {
27
- box-shadow: none;
28
- border: none;
29
- box-shadow: none;
30
- }
31
-
32
- .form-select.no-caret {
33
- --bs-form-select-bg-img: none !important;
1
+ .ts-dropdown {
2
+ min-width: 242px;
3
+ }
4
+ .ts-control {
5
+ padding-top: 0px;
6
+ }
7
+ .ts-wrapper {
8
+ margin-left: calc(var(--bs-border-width) * -1) !important;
9
+ border-top-left-radius: var(--bs-border-radius) !important;
10
+ border-bottom-left-radius: var(--bs-border-radius) !important;
11
+ white-space: nowrap !important;
12
+ }
13
+ .ts-control, .ts-control input, .ts-dropdown {
14
+ color: inherit;
15
+ }
16
+ .form-floating > .ts-wrapper {
17
+ padding-top: 1.625rem !important;
18
+ }
19
+
20
+ .ts-wrapper.focus {
21
+ border-color: #86b7fe;
22
+ outline: 0;
23
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
24
+ }
25
+
26
+ .focus .ts-control {
27
+ box-shadow: none;
28
+ border: none;
29
+ box-shadow: none;
30
+ }
31
+
32
+ .form-select.no-caret {
33
+ --bs-form-select-bg-img: none !important;
34
34
  }
File without changes
File without changes
package/index.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "waibu-bootstrap",
3
- "version": "2.12.2",
3
+ "version": "2.12.4",
4
4
  "description": "Bootstrap suport for Waibu Framework",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/wiki/CHANGES.md CHANGED
@@ -1,147 +1,156 @@
1
- # Changes
2
-
3
- ## 2026-06-05
4
-
5
- - [2.12.2] Bug fix in ```form-input``` widget
6
- - [2.12.2] Bug fix in ```toast``` widget
7
-
8
- ## 2026-06-03
9
-
10
- - [2.12.1] Bug fix in ```_lib.getInputAttr()```
11
- - [2.12.1] Bug fix in ```form-input``` widget
12
-
13
- ## 2026-06-01
14
-
15
- - [2.11.0] Remove ```params``` on all widget since it already there through ```this.params```
16
- - [2.11.0] Add feature to add addons on all form inputs through schema
17
- - [2.12.0] Tranform ```form-plaintext``` html as href addon if it contains link information
18
-
19
- ## 2026-05-25
20
-
21
- - [2.10.0] Bug fix in ```_lib.js```
22
- - [2.10.0] Add dimmed background for ```form-plaintext``` widget
23
- - [2.10.0] Auto detect theme & iconset
24
-
25
- ## 2026-05-22
26
-
27
- - [2.9.2] Bug fix in ```drawer``` widget
28
-
29
- ## 2026-05-16
30
-
31
- - [2.9.1] Bug fix in ```form-select-ext``` widget
32
- - [2.9.1] Bug fix in ```util.getInputAttr``` helper
33
-
34
- ## 2026-05-11
35
-
36
- - [2.9.0] Updates to match ```dobo@2.23.0``` specs
37
- - [2.9.0] Bug fix in ```theme.js```
38
- - [2.9.0] Auto link for widget bound to database with refs
39
-
40
- ## 2026-05-03
41
-
42
- - [2.8.2] Bug fix in ```form-plaintext``` widgets
43
-
44
- ## 2026-04-25
45
-
46
- - [2.8.0] Change options to format value using the new key set by dobo
47
- - [2.8.0] Use ```generateId('alpha')``` to make sure all generated id in widget doesn;t start with number
48
-
49
- ## 2026-04-18
50
-
51
- - [2.7.2] Bug fix in ```getInputAttr()``` of ```_lib.js```
52
-
53
-
54
- ## 2026-04-17
55
-
56
- - [2.7.1] Bug fix in ```getInputAttr()```
57
- - [2.7.1] Bug fix in ```FormPlaintext``` widget
58
-
59
- ## 2026-04-13
60
-
61
- - [2.7.0] Rewrite ```getInputAttr()``` to not dependent to any template data, rather only depend on attributes
62
-
63
- ## 2026-04-11
64
-
65
- - [2.6.5] Bug fix in ```form-select-ext``` widget
66
- - [2.6.5] Bug fix in ```container``` widget
67
- - [2.6.5] Bug fix in ```getInputAttr()```
68
- - [2.6.5] Bug fix in ```parseVariant()```
69
- - [2.6.5] Bug fix in ```parseSimple()```
70
-
71
- ## 2026-04-07
72
-
73
- - [2.6.4] Bug fix on widget ```form-select-ext```
74
- - [2.6.4] Bug fix on ```buildFormSelect()```
75
-
76
- ## 2026-04-01
77
-
78
- - [2.6.3] Bug fix on widget ```form-datetime```
79
-
80
- ## 2026-03-07
81
-
82
- - [2.6.2] Bug fix on widget ```app-launcher-trigger```
83
-
84
- ## 2026-03-06
85
-
86
- - [2.6.1] Bug fix on ```wbs.js```
87
-
88
- ## 2026-02-20
89
-
90
- - [2.6.0] Change ```getInputAttr()``` to async function
91
- - [2.6.0] Update to support a function handler as ```prop.values```
92
- - [2.6.0] Add button to admin area in ```Drawer``` if user is an admin
93
-
94
- ## 2026-02-18
95
-
96
- - [2.4.0] Update attribute functions from ```waibu```
97
- - [2.4.0] Bug fix on ```FormSelectExt``` 's static css
98
- - [2.4.0] Bug fix on ```FormSelectCountry``` 's static css
99
- - [2.5.0] Remove ```FormSelectCountry``` alltogther
100
- - [2.5.0] Bug fix on ```FormSelectExt```'s options
101
- - [2.5.0] In read only mode, auto detect value from model's values
102
-
103
- ## 2026-02-15
104
-
105
- - [2.3.0] Add capability to use custom tag on ```select```
106
- - [2.3.0] Now you can hide caret on ```<c:form-select-ext />``` with ```no-caret``` attribute
107
- - [2.3.0] Add ```value-store="name:key"``` to read/write value to Alpine's store
108
-
109
- ## 2026-02-11
110
-
111
- - [2.2.3] Bug fix on widget attribute ```rounded```
112
- - [2.2.3] Bug fix on widget ```<c:nav-item />```
113
-
114
- ## 2026-02-09
115
-
116
- - [2.2.0] Start using simplified ```webAppCtx```
117
- - [2.2.1] Bug fix on ```sidebar``` widget
118
- - [2.2.2] Bug fix on ```sidebar``` widget
119
-
120
- ## 2026-02-04
121
-
122
- - [2.1.8] Bug fix on ```<c:nav-dropdown-setting>```
123
-
124
- ## 2026-02-03
125
-
126
- - [2.1.7] Bug fix on menu direction
127
- - [2.1.7] Bug fix on ```dropdown``` widget
128
-
129
- ## 2026-01-18
130
-
131
- - [2.1.5] Darkmode handling
132
- - [2.1.5] Put border around fieldset if its type is a card
133
- - [2.1.6] Remove ```getOrCreateInstance()``` on ```wbs.appLauncher()```
134
-
135
- ## 2026-01-17
136
-
137
- - [2.1.3] Sidebar buttons in inactive state should be transparent
138
- - [2.1.4] Add capability to set custom theme & iconset through headers
139
-
140
- ## 2026-01-13
141
-
142
- - [2.1.1] Bug fix on waibuMpa's widgeting system
143
-
144
- ## 2025-12-31
145
-
146
- - [2.1.0] Ported to match ```bajo@2.2.x``` specs
147
- - [2.1.0] Upgrade to ```bootstrap@5.3.8```
1
+ # Changes
2
+
3
+ ## 2026-10-19
4
+
5
+ - [2.12.4] Bug fix in `_lib.js`
6
+ - [2.12.4] Bug fix in `form-input.js`
7
+
8
+ ## 2026-06-11
9
+
10
+ - [2.12.3] Bug fix in `form-select-ext` widget
11
+
12
+ ## 2026-06-05
13
+
14
+ - [2.12.2] Bug fix in `form-input` widget
15
+ - [2.12.2] Bug fix in `toast` widget
16
+
17
+ ## 2026-06-03
18
+
19
+ - [2.12.1] Bug fix in `_lib.getInputAttr()`
20
+ - [2.12.1] Bug fix in `form-input` widget
21
+
22
+ ## 2026-06-01
23
+
24
+ - [2.11.0] Remove `params` on all widget since it already there through `this.params`
25
+ - [2.11.0] Add feature to add addons on all form inputs through schema
26
+ - [2.12.0] Tranform `form-plaintext` html as href addon if it contains link information
27
+
28
+ ## 2026-05-25
29
+
30
+ - [2.10.0] Bug fix in `_lib.js`
31
+ - [2.10.0] Add dimmed background for `form-plaintext` widget
32
+ - [2.10.0] Auto detect theme & iconset
33
+
34
+ ## 2026-05-22
35
+
36
+ - [2.9.2] Bug fix in `drawer` widget
37
+
38
+ ## 2026-05-16
39
+
40
+ - [2.9.1] Bug fix in `form-select-ext` widget
41
+ - [2.9.1] Bug fix in `util.getInputAttr` helper
42
+
43
+ ## 2026-05-11
44
+
45
+ - [2.9.0] Updates to match `dobo@2.23.0` specs
46
+ - [2.9.0] Bug fix in `theme.js`
47
+ - [2.9.0] Auto link for widget bound to database with refs
48
+
49
+ ## 2026-05-03
50
+
51
+ - [2.8.2] Bug fix in `form-plaintext` widgets
52
+
53
+ ## 2026-04-25
54
+
55
+ - [2.8.0] Change options to format value using the new key set by dobo
56
+ - [2.8.0] Use `generateId('alpha')` to make sure all generated id in widget doesn;t start with number
57
+
58
+ ## 2026-04-18
59
+
60
+ - [2.7.2] Bug fix in `getInputAttr()` of `_lib.js`
61
+
62
+
63
+ ## 2026-04-17
64
+
65
+ - [2.7.1] Bug fix in `getInputAttr()`
66
+ - [2.7.1] Bug fix in `FormPlaintext` widget
67
+
68
+ ## 2026-04-13
69
+
70
+ - [2.7.0] Rewrite `getInputAttr()` to not dependent to any template data, rather only depend on attributes
71
+
72
+ ## 2026-04-11
73
+
74
+ - [2.6.5] Bug fix in `form-select-ext` widget
75
+ - [2.6.5] Bug fix in `container` widget
76
+ - [2.6.5] Bug fix in `getInputAttr()`
77
+ - [2.6.5] Bug fix in `parseVariant()`
78
+ - [2.6.5] Bug fix in `parseSimple()`
79
+
80
+ ## 2026-04-07
81
+
82
+ - [2.6.4] Bug fix on widget `form-select-ext`
83
+ - [2.6.4] Bug fix on `buildFormSelect()`
84
+
85
+ ## 2026-04-01
86
+
87
+ - [2.6.3] Bug fix on widget `form-datetime`
88
+
89
+ ## 2026-03-07
90
+
91
+ - [2.6.2] Bug fix on widget `app-launcher-trigger`
92
+
93
+ ## 2026-03-06
94
+
95
+ - [2.6.1] Bug fix on `wbs.js`
96
+
97
+ ## 2026-02-20
98
+
99
+ - [2.6.0] Change `getInputAttr()` to async function
100
+ - [2.6.0] Update to support a function handler as `prop.values`
101
+ - [2.6.0] Add button to admin area in `Drawer` if user is an admin
102
+
103
+ ## 2026-02-18
104
+
105
+ - [2.4.0] Update attribute functions from `waibu`
106
+ - [2.4.0] Bug fix on `FormSelectExt` 's static css
107
+ - [2.4.0] Bug fix on `FormSelectCountry` 's static css
108
+ - [2.5.0] Remove `FormSelectCountry` alltogther
109
+ - [2.5.0] Bug fix on `FormSelectExt`'s options
110
+ - [2.5.0] In read only mode, auto detect value from model's values
111
+
112
+ ## 2026-02-15
113
+
114
+ - [2.3.0] Add capability to use custom tag on `select`
115
+ - [2.3.0] Now you can hide caret on `<c:form-select-ext />` with `no-caret` attribute
116
+ - [2.3.0] Add `value-store="name:key"` to read/write value to Alpine's store
117
+
118
+ ## 2026-02-11
119
+
120
+ - [2.2.3] Bug fix on widget attribute `rounded`
121
+ - [2.2.3] Bug fix on widget `<c:nav-item />`
122
+
123
+ ## 2026-02-09
124
+
125
+ - [2.2.0] Start using simplified `webAppCtx`
126
+ - [2.2.1] Bug fix on `sidebar` widget
127
+ - [2.2.2] Bug fix on `sidebar` widget
128
+
129
+ ## 2026-02-04
130
+
131
+ - [2.1.8] Bug fix on `<c:nav-dropdown-setting>`
132
+
133
+ ## 2026-02-03
134
+
135
+ - [2.1.7] Bug fix on menu direction
136
+ - [2.1.7] Bug fix on `dropdown` widget
137
+
138
+ ## 2026-01-18
139
+
140
+ - [2.1.5] Darkmode handling
141
+ - [2.1.5] Put border around fieldset if its type is a card
142
+ - [2.1.6] Remove `getOrCreateInstance()` on `wbs.appLauncher()`
143
+
144
+ ## 2026-01-17
145
+
146
+ - [2.1.3] Sidebar buttons in inactive state should be transparent
147
+ - [2.1.4] Add capability to set custom theme & iconset through headers
148
+
149
+ ## 2026-01-13
150
+
151
+ - [2.1.1] Bug fix on waibuMpa's widgeting system
152
+
153
+ ## 2025-12-31
154
+
155
+ - [2.1.0] Ported to match `bajo@2.2.x` specs
156
+ - [2.1.0] Upgrade to `bootstrap@5.3.8`
package/wiki/CONFIG.md CHANGED
File without changes
File without changes