@unabridged/midwest 0.16.0 → 0.17.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.
Files changed (23) hide show
  1. package/app/assets/javascript/midwest/index.ts +2 -0
  2. package/app/assets/javascript/midwest.js +754 -97
  3. package/app/assets/javascript/midwest.js.map +1 -1
  4. package/app/assets/stylesheets/midwest.css +1 -1
  5. package/app/assets/stylesheets/midwest.tailwind.css +3 -1
  6. package/dist/css/midwest.css +1 -1
  7. package/dist/javascript/collection/app/assets/javascript/midwest/index.js +2 -0
  8. package/dist/javascript/collection/app/assets/javascript/midwest/index.js.map +1 -1
  9. package/dist/javascript/collection/app/components/midwest/carousel_component/carousel_component_controller.js +17 -5
  10. package/dist/javascript/collection/app/components/midwest/carousel_component/carousel_component_controller.js.map +1 -1
  11. package/dist/javascript/collection/app/components/midwest/form/autocomplete_component/autocomplete_component_controller.js +180 -92
  12. package/dist/javascript/collection/app/components/midwest/form/autocomplete_component/autocomplete_component_controller.js.map +1 -1
  13. package/dist/javascript/collection/app/components/midwest/form/live_summary_component/live_summary_component_controller.js +12 -0
  14. package/dist/javascript/collection/app/components/midwest/form/live_summary_component/live_summary_component_controller.js.map +1 -1
  15. package/dist/javascript/collection/app/components/midwest/image_component/color_thief.js +490 -0
  16. package/dist/javascript/collection/app/components/midwest/image_component/color_thief.js.map +1 -0
  17. package/dist/javascript/collection/app/components/midwest/image_component/image_component_controller.js +47 -0
  18. package/dist/javascript/collection/app/components/midwest/image_component/image_component_controller.js.map +1 -0
  19. package/dist/javascript/collection/app/components/midwest/tabs_component/tabs_component_controller.js +15 -1
  20. package/dist/javascript/collection/app/components/midwest/tabs_component/tabs_component_controller.js.map +1 -1
  21. package/dist/javascript/midwest.js +754 -97
  22. package/dist/javascript/midwest.js.map +1 -1
  23. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tabs_component_controller.js","sources":["../../../../../../../app/components/midwest/tabs_component/tabs_component_controller.ts"],"sourcesContent":["\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class Tabs extends Controller<HTMLElement> {\n static targets = ['tab', 'panel']\n\n declare readonly tabTargets: HTMLButtonElement[]\n declare readonly panelTargets: HTMLElement[]\n\n connect () {\n const activeIndex = this.tabTargets.findIndex(\n tab => tab.getAttribute('aria-selected') === 'true'\n )\n this.activateTab(activeIndex >= 0 ? activeIndex : 0)\n this.element.addEventListener('keydown', this.handleKeydown)\n }\n\n disconnect () {\n this.element.removeEventListener('keydown', this.handleKeydown)\n }\n\n select (event: Event) {\n const tab = event.currentTarget as HTMLButtonElement\n const index = this.tabTargets.indexOf(tab)\n if (index >= 0) this.activateTab(index)\n }\n\n private handleKeydown = (event: KeyboardEvent) => {\n const tabs = this.tabTargets\n if (tabs.length === 0) return\n\n const currentIndex = tabs.findIndex(t => t === document.activeElement)\n if (currentIndex < 0) return\n\n let nextIndex: number\n\n switch (event.key) {\n case 'ArrowLeft':\n nextIndex = (currentIndex - 1 + tabs.length) % tabs.length\n break\n case 'ArrowRight':\n nextIndex = (currentIndex + 1) % tabs.length\n break\n case 'Home':\n nextIndex = 0\n break\n case 'End':\n nextIndex = tabs.length - 1\n break\n default:\n return\n }\n\n event.preventDefault()\n this.activateTab(nextIndex)\n tabs[nextIndex].focus()\n }\n\n private activateTab (index: number) {\n this.tabTargets.forEach((tab, i) => {\n const active = i === index\n tab.setAttribute('aria-selected', String(active))\n tab.setAttribute('tabindex', active ? '0' : '-1')\n tab.classList.toggle('active', active)\n })\n\n this.panelTargets.forEach((panel, i) => {\n if (i === index) {\n panel.removeAttribute('hidden')\n } else {\n panel.setAttribute('hidden', '')\n }\n })\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabs_component_controller.js","sources":["../../../../../../../app/components/midwest/tabs_component/tabs_component_controller.ts"],"sourcesContent":["\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class Tabs extends Controller<HTMLElement> {\n static targets = ['tab', 'panel', 'list']\n\n declare readonly tabTargets: HTMLButtonElement[]\n declare readonly panelTargets: HTMLElement[]\n declare readonly listTarget: HTMLElement\n declare readonly hasListTarget: boolean\n\n connect () {\n const activeIndex = this.tabTargets.findIndex(\n tab => tab.getAttribute('aria-selected') === 'true'\n )\n this.activateTab(activeIndex >= 0 ? activeIndex : 0)\n this.element.addEventListener('keydown', this.handleKeydown)\n if (this.hasListTarget) {\n this.updateOverflow()\n this.listTarget.addEventListener('scroll', this.updateOverflow)\n }\n }\n\n disconnect () {\n this.element.removeEventListener('keydown', this.handleKeydown)\n if (this.hasListTarget) {\n this.listTarget.removeEventListener('scroll', this.updateOverflow)\n }\n }\n\n select (event: Event) {\n const tab = event.currentTarget as HTMLButtonElement\n const index = this.tabTargets.indexOf(tab)\n if (index >= 0) this.activateTab(index)\n }\n\n private updateOverflow = () => {\n if (!this.hasListTarget) return\n const list = this.listTarget\n list.classList.toggle('can-scroll-left', list.scrollLeft > 0)\n list.classList.toggle('can-scroll-right', list.scrollLeft < list.scrollWidth - list.clientWidth - 1)\n }\n\n private handleKeydown = (event: KeyboardEvent) => {\n const tabs = this.tabTargets\n if (tabs.length === 0) return\n\n const currentIndex = tabs.findIndex(t => t === document.activeElement)\n if (currentIndex < 0) return\n\n let nextIndex: number\n\n switch (event.key) {\n case 'ArrowLeft':\n nextIndex = (currentIndex - 1 + tabs.length) % tabs.length\n break\n case 'ArrowRight':\n nextIndex = (currentIndex + 1) % tabs.length\n break\n case 'Home':\n nextIndex = 0\n break\n case 'End':\n nextIndex = tabs.length - 1\n break\n default:\n return\n }\n\n event.preventDefault()\n this.activateTab(nextIndex)\n tabs[nextIndex].focus()\n }\n\n private activateTab (index: number) {\n this.tabTargets.forEach((tab, i) => {\n const active = i === index\n tab.setAttribute('aria-selected', String(active))\n tab.setAttribute('tabindex', active ? '0' : '-1')\n tab.classList.toggle('active', active)\n })\n\n this.panelTargets.forEach((panel, i) => {\n if (i === index) {\n panel.removeAttribute('hidden')\n } else {\n panel.setAttribute('hidden', '')\n }\n })\n }\n}\n"],"names":[],"mappings":"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"}